您的位置:首页 > 编程语言 > Java开发

spring in action-最小化spring XML配置

2016-09-06 17:30 411 查看
内容预览:

Bean的自动装配

Bean的自动检测

面向注解的Bean装配

基于java的spring配置

一.首先要了解什么是spring装配?

  创建应用组件之间相互协作关系的行为就是装配

spring中提供了几种技巧帮助我们来减少XML的配置数量

自动装配:有助于减少甚至消除配置
<property>
<constructor-arg>
元素,让spring自动识别如何装配Bean的依赖关系

自动检测:比自动装配更进了一步,让spring自动识别哪些类需要被配置成spring Bean,从而减少对
<bean>
元素的使用

当自动装配和自动检测一起使用时,可以显著的减少spring中XML的配置数量

二.自动装配Bean属性

1.- 4中类型的自动装配,如下图所示:



byName自动装配:





byType自动装配:spring会寻找哪一个bean的类型与属性的类型相匹配:



constructor自动装配:



最佳自动装配:如果想自动装配,但是又不能确定使用哪一种自动装配的时候,我们可以设置autowire属性值为autodetect,由spring来决定使用哪一种类型的自动装配



当配置一个bean的autowire属性值为autodetect的时候,spring将首先尝试使用constructor自动装配,如果没有发现与构造器相匹配的bean,spring将尝试使用byType自动装配

2.默认自动装配:如果要为spring应用上下文中的所有Bean配置相同的autowire属性值得时候就适合这种方式



3.混合使用自动装配和显示装配:如果在spring上下文中有多个Bean实现了某一接口,为了避免spring无法从这几个实现了相同的接口的Bean中进行明确挑选而抛出异常,我们就可以此采用显示装配某一属性来覆盖自动装配



三.使用注解装配

spring容器默认禁用注解配置,所以在使用基于注解的自动装配前,我们要在spring中启用它,最简单的启用方式就是使用spring的context命名空间中配置的
<context:annotation-config>
元素,如下图所示:



spring3 支持几种不同的用于自动装配的注解:



1.使用@Autowired:适用于应用中 必须只能有一个Bean适合装配到@Autowired注解多标注的属性或参数中,如果没有匹配的Bean或者有多个匹配的Bean则需要另外的解决办法



   1.1可选的自动装配->没有匹配的Bean:



   1.2限定歧义性的依赖->有多个匹配的Bean:为了帮助@Autowired鉴定出哪一个才是需要的Bean,我们需要配合使用spring的@Qualifier注解:



2.借助@Inject实现基于标准的自动装配



   2.1限定@Inject所标注的属性:



3.在注解注入中使用表达式



四.自动检测Bean

   为了配置spring的自动检测,需要配置
<context:component-scan>
元素,它完成了与
<context:annotation-config>
一样的工作,还允许spring自动检测Bean和定义Bean,这意味着不用bean元素,spring应用中大多数的Bean都可以实现定义和装配,配置方式如下图所示:



1.为自动检测标注Bean



spring在扫描包的时候发现了使用@Component等注解所标注的类时就会将它注册为spring Bean,Bean 的ID为类名首字母小写;如果制定了一个Bean ID作为@Component(“eddie”)的参数,则Bean的ID就不能使用默认的了,需采用制定的ID名

2.过滤组件扫描







   2.1:



五.使用spring基于java的配置

1.创建基于java的配置:spring的java配置可以让我们不使用XML就可以编写大多数的spring配置,但我们仍然需要极少量的XML来启用java配置




2.定义一个配置类:



3.声明一个简单的Bean:



4.使用spring的基于java的配置进行注入

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐