spring学习-IOC-XML转Annotation

Posted 懒佯佯大哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring学习-IOC-XML转Annotation相关的知识,希望对你有一定的参考价值。

  • 参照之前xml方式的注解,可以大致如下:
    • 用于创建对象bean的
    • 用于注入数据的
    • 用于改变作用域的
    • 声明周期相关的

  • 用于创建对象bean的:
    • @Component:创建当前对象的bean,未指定bean id时,默认为类名首字母小写
      • @Component(“accountService”)
    • @Controller:表现层
    • @Service:业务逻辑层
    • @Repository:持久层
      注意:Controller、Service、Repository三者作用一样,只是为了更好的描述三层关系
    • @Component-scan:指定扫描路径,相当于xml中:<context:component-scan base-package=“anotation1”/>

  • 用于注入数据的:

    • @Autowired:
      • 按照类型注入
      • 作用于变量(可以是接口类,有对应的实现bean即可)、方法上
      • 注入策略:
        • 首先:根据类型判断(接口满足也可),
          • 无匹配:失败退出
          • 有唯一bean:注入成功
          • 有多个bean:继续匹配
        • 其次:多个bean时,再按照变量名是否等于bean id,匹配则成功,否则异常退出
    • @Qualifier:
      • value:限定注入名称:@Qualifier(“accountDao”)
    • @Resource:
      • Value:直接指定bean id注入
    • @Value:
      • 注入基本类型、String
      • 语法:直接写入值,也可以是spel语法:$表达式
  • 注意事项:

    • 变量注入时:@Qualifier不能单独使用,需要配合@Autowired
    • 方法注入时:@Qualifier可以单独使用
    • @Autowire、@Qualifier、@Reousrce:只能注入bean,不能注入变量
    • 集合类型的:只能通过xml方式注入

  • 用于改变作用域的
    • @Scope:
      • Value:5个阈值,常用的就是singleton、prototype

  • 声明周期相关的
    • @PreDestroy:指定销毁方法
    • @PostConstruct:指定初始化方法
      这2个方法,就是xml中的init-method、destory-method

以上是关于spring学习-IOC-XML转Annotation的主要内容,如果未能解决你的问题,请参考以下文章

spring学习-IOC-XML关键配置介绍

学习SpringMVC(二十)之返回JSON

spring学习笔记(转)

spring学习笔记2(转)

不错的Spring学习笔记(转)

Spring aop 简单示例