zoukankan      html  css  js  c++  java
  • Spring之基于注解的注入

    对于DI使用注解,将不再需要在Spring配置文件中声明Bean实例。Spring中使用注解,需要在原有Spring运行环境基础上再做一些改变,完成以下三个步骤。

    (1)导入AOP的Jar包。因为注解的后台实现用到了AOP编程。

    (2)需要更换配置文件头,即添加相应的约束。

    (3)需要在Spring配置文件中配置组件扫描器,用于在指定的基本包中扫描注解。

    1、定义Bean@Component

    需要在类上使用注解@Component,该注解的value属性用于指定该bean的id值。
    举例:di01

    另外,Spring还提供了3个功能基本和@Component等效的注解:
     @Repository 用于对DAO实现类进行注解
     @Service 用于对Service实现类进行注解
     @Controller 用于对Controller实现类进行注解
    之所以创建这三个功能与@Component等效的注解,是为了以后对其进行功能上的扩展,使它们不再等效。

    2、Bean的作用域@Scope

    需要在类上使用注解@Scope,其value属性用于指定作用域。默认为singleton。
    举例:di01

    3、基本类型属性注入@Value

    需要在属性上使用注解@Value,该注解的value属性用于指定要注入的值。
    使用该注解完成属性注入时,类中无需setter。当然,若属性有setter,则也可将其加到setter上。

    4、按类型注入域属性@Autowired,@Autowired是spring的注解

    需要在域属性上使用注解@Autowired,该注解默认使用按类型自动装配Bean的方式。
    使用该注解完成属性注入时,类中无需setter。当然,若属性有setter,则也可将其加到setter上。

    5、按名称注入域属性@Autowired与@Qualifier

    需要在域属性上联合使用注解@Autowired与@Qualifier。@Qualifier的value属性用于指定要匹配的Bean的id值。同样类中无需setter,也可加到setter上。

      

    @Autowired还有一个属性required,默认值为true,表示当匹配失败后,会终止程序运行。若将其值设置为false,则匹配失败,将被忽略,未匹配的属性值为null。

    6、域属性注解@Resource,也就是说@Resource是java自带的注解

    Spring提供了对JSR-250规范中定义@Resource标准注解的支持。@Resource注解既可以按名称匹配Bean,也可以按类型匹配Bean。使用该注解,要求JDK必须是6及以上版本。
    (1)按类型注入域属性
    @Resource注解若不带任何参数,则会按照类型进行Bean的匹配注入。
    举例:di04

    (2)按名称注入域属性
    @Resource注解指定其name属性,则name的值即为按照名称进行匹配的Bean的id。
    举例:di05

    7、Bean的生命始末@PostConstruct与@PreDestroy

    在方法上使用@PostConstruct,与原来的init-method等效。在方法上使用@PreDestroy,与destroy-method等效。

    8、使用JavaConfig进行配置(替代的是applicationContext.xml)

    JavaConfig,是在Spring 3.0开始从一个独立的项目并入到Spring中的。JavaConfig可以看成一个用于完成Bean装配的配置文件,只不过是程序员使用Java自己编写的。
    举例:di06包

    9.使用junit4测试Spring

    创建一个普通POJO类作为测试类。
    需要在三个位置添加注解。
     在类头添加两个注解:
    @RunWith(SpringJUnit4ClassRunner.class):用于指定运行环境
    @ContextConfiguration(locations=“”):用于指定配置文件位置

    将要测试的对象声明为成员变量,并在其头上添加注解。

    在测试方法头上添加注解。

     

    总结:注解与XML共同使用注解的好处是,配置方便,直观。但其弊端也显而易见:以硬编码的方式写入到了Java代码中,其修改是需要重新编译代码的。
    XML配置方式的最大好处是,对其所做修改,无需编译代码,只需重启服务器即可将新的配置加载。
    若注解与XML同用,XML的优先级要高于注解。这样做的好处是,需要对某个Bean做修改,只需修改配置文件即可。当然,此时,Bean类要有setter或构造器。

  • 相关阅读:
    用vbox搭建Linux服务器
    mysql数据库两表关联查询统计同一字段不同值的个数
    2019-06-16 Java学习日记之XML&tomcat
    2019-06-15 Java学习日记之mysql多表查询
    2019-06-14 Java学习日记之SQL
    2019-06-13 Java学习日记之MySql
    XML & Tomcat
    数据库的CRUD操作
    PrepareStatement
    Dao模式(data Access Object 数据访问对象)
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/9014400.html
Copyright © 2011-2022 走看看