IOC与DI

  1. 基本概念
    • 控制反转(Inversion of Control)是一种是面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度。其基本思想是:借助于“第三方”实现具有依赖关系的对象之间的解耦。实现控制反转主要有两种方式:依赖注入依赖查找。两者的区别在于,前者是被动的接收对象,在类A的实例创建过程中即创建了依赖的B对象,通过类型或名称来判断将不同的对象注入到不同的属性中,而后者是主动索取响应名称的对象,获得依赖对象的时间也可以在代码中自由控制。
    • 依赖注入就是将实例变量传入到一个对象中去(Dependency injection means giving an object its instance variables)。
  2. ICO与DI的关系
    • 依赖注入是一种设计模式
    • 控制反转是一种设计原则,一种编程思想.
    • IoC框架使用依赖注入作为实现控制反转的方式,但是控制反转还有其他的实现方式,比如依赖查找,所以不能将控制反转和依赖注入等同。
  3. Spring中的依赖注入
    • Spring依赖注入的两种方式:setter方法注入(setter injection)和构造器注入(constructor injection)
  4. 参考

Spring中Bean的基本装配

  1. 两种注入方式,构造器注入(对应xml c空间),属性的settr方法注入(对应xml p空间)
  2. 基于xml装配
    • 构造器注入: c-命名空间;元素:<constructor-arg ref="bean-id"/>
    • setter注入: p-命名空间;元素:<property name="属性名" ref="bean-id"/>
    • 装配集合(此时命名空间无法做到),需用元素
  3. 基于注解装配
    • Spring3基于注解实现Bean依赖注入支持如下四种注解
      • spring自带依赖注入注解: Spring自带的一套依赖注入注解;
      • JSR-250注解:Java平台的公共注解,是Java EE 5规范之一,在JDK6中默认包含这些注解,从Spring2.5开始支持。
      • JSR-330注解:Java 依赖注入标准,Java EE 6规范之一,可能在加入到未来JDK版本,从Spring3开始支持;
      • JPA注解:用于注入持久化上下文和实体管理器。
    • Spring自带注解
      • @Required: 依赖检查,只能放置在setter方法上,要求xml中配置该Bean时必须注入.
      • @Autowired 自动装配,默认是根据类型注入,可以用于构造器、字段、方法注入(不只settr方法)
      • @Qualifier 与 Autowired 配合根据名字装配;(还能进行更细粒度的控制)
      • @Component: 取代 声明bean, 用在要被自动扫描和装配的类上(类级别)
      • @Bean , 声明一个single bean, 用法方法上(方法级别)
    • JSR-250注解
      • @Resource:自动装配,默认根据类型装配,如果指定name属性将根据名字装配
    • SR-330注解
      • @Inject:等价于默认的@Autowired
      • @Name,类似@Component
  4. Bean的生命周期

Bean高级装配

  1. Bean的作用域
  2. Spring profile
  3. 条件化的Bean声明
  4. Spring表达式语言(SpEL)

示例代码及单元测试

  1. @RunWith注解
  2. @Rule注解
  3. Assert用法
  4. System Rules用法
  5. 代码

转载于:https://my.oschina.net/husthang/blog/840615

相关文章:

  • 2021-11-28
  • 2022-12-23
  • 2022-12-23
  • 2021-08-20
  • 2021-09-29
  • 2022-02-13
  • 2021-06-16
  • 2021-06-27
猜你喜欢
  • 2022-12-23
  • 2021-05-15
  • 2021-08-10
  • 2021-06-19
  • 2021-07-03
  • 2022-12-23
  • 2021-03-30
相关资源
相似解决方案