Spring之基于注解的DI

Spring之基于注解的DI

一、所需配置

使用注解的DI,将不需要再Spring配置文件中声明Bean实例,需要在基于XMl的DI环境做一些改变,步骤如下

1.1 导入AOP的Jar报。因为注解后台实现用到了AOP编程

1.2 需要更换配置头文件,即添加相应约束,约束在%SPRING_HOME%\docs\spring-framework-reference\html\xsd-configuration.html文件中。

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


二、定义Bean@Component

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


另外、Spring还提供了3个功能基本和@Component等效的注解:

1,@Repository 用于DAO实现类进行注解

2,@Service 用于对Service实现类进行注解

3,@Controller 用于对Controller实现类进行注解

        之所以创建这三个功能与@Component等效的注解,是为了以后对其进行功能上的扩展,使他们不再等效

三、Bean的作用域@Scope

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


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

需要在属性上使用注解@Value,该注解的value属性用于指定要注入的值,

使用该注解完成属性注入时,类中无需setter。当然,若属性有setter,则也可以将其加到setter上


五、按类型注入域属性@Autowired

需要在域属性上使用注解@Autowired,该注解默认使用按类型自动装配 Bean 的方式。

使用该注解完成属性注入时,类中无需 setter。当然,若属性有 setter,则也可将其加到setter 上。



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

需要在域属性上联合使用注解@Autowired 与@Qualifier。@Qualifier 的 value 属性用于Bean 的 id setter,也可加到 setter 上。


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


七、域属性注解,@Resource

Spring 提供了对 JSR-250 规范中定义@Resource 标准注解的支持。@Resource 注解既可以按名称匹配 Bean,也可以按类型匹配 Bean。使用该注解,要求 JDK 必须是 6 及以上版本。

7.1 按类型注入域属性

    @Resource注解若不带任何参数,则会按照类型进行Bean的匹配注入


7.2 按名称注入域属性

@resource注解指定其name属性,则name的值即为按照名称进行匹配的Bean的id


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

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





猜你喜欢

转载自blog.csdn.net/king_cannon_fodder/article/details/80170665
今日推荐