Spring笔记三、注解配Bean

Spring IoC中的Spring Bean配置——注解配Bean

在这把我们来解释Bean的另一种配置方式:注解配置

注解的分类:

  • 用于创建对象:类似于bean标签
  • 用于注入数据:类似于property标签
  • 用于作用范围:类似于scope属性
  • 用于生命周期:类似于 init-method 和 destory-method属性

注意要在xml中首先配置初始化时包扫描路径才能使用注解

<context:component-scan base-package="java"></context:component-scan>

一、用于创建对象

  • @Component
    • 写在类上面
    • 参数为 id ,若不写则默认 id 为类名小写
  • @Controller 一般用于表现层
  • @Service 一般用于业务层
  • @Repository 一般用于持久层

二、用于注入数据

  • @Autowirde

    • 自动按照类型注入,只有容器中有一个唯一的bean对象类型和要注入的变量类型匹配,就可以注入成功
    • 可以是成员变量上和方法上
  • @Qualifier

    • 在按照类注入的基础上再按照名称注入
    • 给成员变量注入是不能单独使用,和@Autowirde配合使用
    • 可以配置在方法参数中
  • @Resource:实现上述两者功能

上述三个注解只能注入bean类型数据,基本数据类型和String无法实现

集合的注入只能通过 xml 来实现

  • @Value:用于注入基本数据类型和String
    • 可以使用 spEl 即 spring的 El 表达式 ${表达式}
    • value属性用于指定数据的值

三、用于作用范围

  • @Scope:用于指定作用范围

    value用于指定范围

    • singleton 单例(默认)
    • prototype 多例

四、用于生命周期

  • @PreDestroy:销毁方法
  • @PostConstruct:初始化方法

五、其他注解

  • @Configuration:指定当前类为配置类,可以实现在类中配置,脱离 xml。

    只有当对象为AnnotationConfigApplicationContext创建参数时可以不写

  • @ComponentScan:指定spring在创建容器时要扫描的包。

  • @Bean:将当前方法的返回值存入容器,属性为 id,不写时,默认为当前方法名称。

    当用注解配置的方法含参数时,spring会自动去容器中自动找对象

  • @Import:用于导入其他配置类,参数为类的字节码文件,写在父配置类里

  • @PropertySource:导入Property配置文件,关键字为classPath:后跟类路径。

六、容器构造方法补充

AnnotationConfigApplicationContext:读取注解创建容器
当使用注解类注解时,工程中不再存在xml 文件,所以也就不能使用其他两种构造方法了

ApplicationContext ac = new AnnotationConfigApplicationContext(注解类.class);
发布了3 篇原创文章 · 获赞 0 · 访问量 9

猜你喜欢

转载自blog.csdn.net/qq_43733805/article/details/105172727