spring02-IOC注解

spring的IOC注解


曾经的xml中的bean标签配置git

<bean id="" class="" init-method="" destroy-method="" scope="">
   <property name="" value="" | ref=""/>
</bean>

依据标签能够对注解进行分类:github

  1. 用于建立对象的
    • 其做用和xml中的bean标签同样
    1. @Component:
      • 位置: 类上
      • 做用: 将当前对象类存入spring容器中
      • value属性: 至关于设置bean标签的id属性, 默认值为类名首字母小写
    2. @Controller, @Service, @Repository做用和@Component同样, 分别用在控制层, 服务层和持久层(其实底层就是继承机制)
  2. 用于注入数据的
    • 其做用和xml中bean的子标签property同样
    • 1~3只能注入bean类型的数据, 集合类型只能经过xml注入
    1. @AutoWired
      • 位置: 变量或方法上
      • 做用: 自动按照类型注入. 只要容器中有惟一的bean对象的类型与要注入的变量类型匹配, 就能够注入成功
      • 注意:
        1. 若是IOC容器中没有任何bean的类型与要注入的变量类型相匹配, 就会报错
        2. 若是IOC容器中有多个bean类型与要注入的变量类型相匹配时, 首先会按照匹配的类型找bean对象, 而后会按照id找与变量名相同的bean对象, 不然会报错
    2. @Qualifier
      • 位置: 变量|方法|方法参数上, 须要与@Autowired一块儿使用
      • 做用: 在按照类型注入的基础上再按照变量名注入. 给类成员注入时不能单独使用, 可是给方法参数注入时能够
      • 属性: 用于指定注入的bean的id
    3. @Resource(name = "beanDao")
      • 位置: 变量或方法上, 须要与@Autowired一块儿使用
      • 做用: 直接按照bean的id注入. 能够独立使用
      • 属性:
        1. name: 用于指定bean的id
    4. @Value
      • 做用: 用于注入基本数据类型和String类型的数据
      • 属性: 用于指定数据的值. 能够使用spEl(EL表达式, 出如今什么地方就是什么的表达式)
  3. 用于改变做用范围的
    • 其做用和xml中bean标签的scope属性同样
    1. @Scope
      • 属性: 指定范围的取值. 经常使用的有singleton和prototype
  4. 和生命周期相关的(了解)
    • 其做用和xml中bean标签的init-method和destroy-method属性同样
    1. @PreDestroy: 指定销毁方法
    2. @PreConstruct: 指定初始化方法

本文代码: 此处 的 spring02-annotationspring

相关文章
相关标签/搜索