第一章 简化Java开发

一简化java开发
1,Sping如何简化Java开发?
1)基于pojo的轻量级和最小侵入性编程
2)通过依赖注入和面向接口实现松耦合
3)通过切面和惯例机型声明式编程
4)通过切面和模板减少样板式代码
2,什么是侵入性编程
强迫应用继承第三方的类或者实现他们的接口,从而导致应用与第三方绑死
3,耦合的两面性
一方面紧密耦合的代码难以测试,难以复用,难以理解,并且典型的表现出打地鼠的的bug特性(一个bug修复导致多个bug出现)
一方面 一定程度的耦合是必须的,完全没有耦合的代码什么也做不了,,为了完成有实际意义的功能,不同的类必须以适当的方式进行交互
4,DI功能是如何实现的
对象的依赖关系将由系统中负责协调对象的第三方组件在创建对象的时候进行设定,对象无需自行创建或管理他们之间的依赖关系(依赖关系建自动注入到需要他们的对象中去)
5,DI的四种方式
1) @Autowired:自动装配
2) setter 方法注入
3) 构造器注入
4)静态工厂的方法注入
6,什么叫装配
创建应用组件之间的协作的行为,Spring的装配方式有多种,比如xml,注解等
7,Spring应用上下文(Application Context)
功能:全权负责对象的创建与组装(装载bean的定义并把他们组装起来)
Spring自带多种应用上下文的实现,主要区别是如何加载配置
ClassPathXmlApplicationContext:该类加载位于应用程序下的一个或者多个xml配置文件
8,AOP
把遍布应用各处的功能分离出来形成可重用的组件
9,模板封装消除样板式代码(比如JDBC底层)


二容纳你的bean
1,容器是Spring框架的核心,归纳两种
1)bean工厂是最简单的容器,提供基本的DI支持(对大多数应用太Low)
2)应用上下文基于BeanFactory构建,提供应用框架级服务,(比如从属性文件解析文本信息及发布应用事件)(更受欢迎)
2,应用上下文
1)、AnnotationConfigApplicationContex:从一个或多个基于java的配置类中加载Spring应用上下文(java配置class路径)
2)、AnnotationConfigWebApplicationContex:从一个或多个基于java的配置类中加载Spring Web应用上下文
3)、ClassPathXmlApplicationContex:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源(所有的类路径包含JAR文件)
4)、FileSystemXmlApplicationContex:从文件系统下的一个或多个XML配置文件中加载上下文定义(指定的文件系统路径)
5、XmlWebApplicationContex:从Web应用下的一个或多个XML配置文件中加载上下文定义
注意:上下文准备就绪后,可以用getBean()从容器中获取Bean
3,bean的生命周期
bean生命周期
1,实例化(当我们的程序加载beans.xml文件),把我们的bean(前提是scope=singlton)实例化到内存
  2,调用set方法设置属性
  3,如果你实现了bean名字关注接口(BeanNameAware)则可以通过setBeanName获取id号
  4,如果你实现了bean工厂关注接口(BeanFactoryAware)则可以通过setBeanFactory获取BeanFactory
  5,如果你实现了ApplicationContextAware关注接口(ApplicationContextAware)则可以通过setApplicationContext获取ApplicationContext
  6,如果bean和一个后置处理器关联(BeanPostProcessor),则会调用postProcessBeforeInitialization(Before)方法
  7,如果你实现了InitializingBean关注接口(InitializingBean)则可以调用afterPropertiesSe
  8,如果自定义了初始化方法则调用自定义的初始化方法(注自定义初始化方法在bean中通过init-method方法配置)
  9,如果bean和一个后置处理器关联(BeanPostProcessor),则会调用postProcessAfterInitialization(After)方法
  10,bean可以使用了
  11,容器关闭
  12,如果实现DisposableBean接口则可以调用其destory()方法,也可以定制自定义的销毁方法(注自定义初始化方法在bean中通过init-method方法配置)
  ps:开发中常见操作步骤1>2>6>10>9>11

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大道至简@EveryDay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值