spring in action-最小化spring XML配置
2016-09-06 17:30
411 查看
内容预览:
Bean的自动装配
Bean的自动检测
面向注解的Bean装配
基于java的spring配置
spring中提供了几种技巧帮助我们来减少XML的配置数量
自动装配:有助于减少甚至消除配置
自动检测:比自动装配更进了一步,让spring自动识别哪些类需要被配置成spring Bean,从而减少对
当自动装配和自动检测一起使用时,可以显著的减少spring中XML的配置数量
![](https://img-blog.csdn.net/20160906153105509)
byName自动装配:
![](https://img-blog.csdn.net/20160906153940284)
![](https://img-blog.csdn.net/20160906154005551)
byType自动装配:spring会寻找哪一个bean的类型与属性的类型相匹配:
![](https://img-blog.csdn.net/20160906154416026)
constructor自动装配:
![](https://img-blog.csdn.net/20160906154859141)
最佳自动装配:如果想自动装配,但是又不能确定使用哪一种自动装配的时候,我们可以设置autowire属性值为autodetect,由spring来决定使用哪一种类型的自动装配
![](https://img-blog.csdn.net/20160906155400252)
当配置一个bean的autowire属性值为autodetect的时候,spring将首先尝试使用constructor自动装配,如果没有发现与构造器相匹配的bean,spring将尝试使用byType自动装配
2.默认自动装配:如果要为spring应用上下文中的所有Bean配置相同的autowire属性值得时候就适合这种方式
![](https://img-blog.csdn.net/20160906160151007)
3.混合使用自动装配和显示装配:如果在spring上下文中有多个Bean实现了某一接口,为了避免spring无法从这几个实现了相同的接口的Bean中进行明确挑选而抛出异常,我们就可以此采用显示装配某一属性来覆盖自动装配
![](https://img-blog.csdn.net/20160906161026652)
![](https://img-blog.csdn.net/20160906161812654)
spring3 支持几种不同的用于自动装配的注解:
![](https://img-blog.csdn.net/20160906162102196)
1.使用@Autowired:适用于应用中 必须只能有一个Bean适合装配到@Autowired注解多标注的属性或参数中,如果没有匹配的Bean或者有多个匹配的Bean则需要另外的解决办法
![](https://img-blog.csdn.net/20160906162910424)
1.1可选的自动装配->没有匹配的Bean:
![](https://img-blog.csdn.net/20160906163454428)
1.2限定歧义性的依赖->有多个匹配的Bean:为了帮助@Autowired鉴定出哪一个才是需要的Bean,我们需要配合使用spring的@Qualifier注解:
![](https://img-blog.csdn.net/20160906163809125)
2.借助@Inject实现基于标准的自动装配
![](https://img-blog.csdn.net/20160906164021461)
2.1限定@Inject所标注的属性:
![](https://img-blog.csdn.net/20160906164415103)
3.在注解注入中使用表达式
![](https://img-blog.csdn.net/20160906164629840)
![](https://img-blog.csdn.net/20160906165619496)
1.为自动检测标注Bean
![](https://img-blog.csdn.net/20160906170016346)
spring在扫描包的时候发现了使用@Component等注解所标注的类时就会将它注册为spring Bean,Bean 的ID为类名首字母小写;如果制定了一个Bean ID作为@Component(“eddie”)的参数,则Bean的ID就不能使用默认的了,需采用制定的ID名
2.过滤组件扫描
![](https://img-blog.csdn.net/20160906170928359)
![](https://img-blog.csdn.net/20160906170945984)
![](https://img-blog.csdn.net/20160906170958459)
2.1:
![](https://img-blog.csdn.net/20160906171314614)
:
![](https://img-blog.csdn.net/20160906171827181)
2.定义一个配置类:
![](https://img-blog.csdn.net/20160906172023279)
3.声明一个简单的Bean:
![](https://img-blog.csdn.net/20160906172244120)
4.使用spring的基于java的配置进行注入
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的配置进行注入
相关文章推荐
- 【Spring in action】SpringMVC基于xml及java配置的简单运用
- 【Spring】【笔记】《Spring In Action》第3章 简化XML配置
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-002- 在xml中引用Java配置文件,声明DispatcherServlet、ContextLoaderListener
- 《Spring In Action》 读书笔记(5) -- @autowire,@Qualifier减少xml配置
- Spring In Action(二):基于XML配置装配bean
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在XML配置文件中引入JAVA配置文件 <import> 、<bean>
- 【Spring in action】基于xml配置:在SpringMVC中使用Spring容器
- SPRING IN ACTION 第4版笔记-第二章WIRING BEANS-008-在Java配置文件中引入xml配置文件@Import、@ImportResource
- Spring in action 03 -- 装配 Bean(xml配置)
- Spring in Action(第三章 最小化 Spring XML配置)学习笔记
- 【spring in action 学习--springMVC搭建】在不使用web.xml的情况下,配置Srping MVC工程
- SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2 配置文件为XML
- SPRING IN ACTION 第4版笔记-第七章Advanced Spring MVC-003- 上传文件multipart,配置StandardServletMultipartResolver、CommonsMultipartResolver
- (笔记)Spring实战_最小化Spring XML配置(2)_使用注解装配
- Spring实战-最小化Spring XML配置(四)
- Spring中最小化xml配置一之 四种自动装备方式
- spring,web.xml中的OpenSessionInViewFilter 配置
- 第3章 最小化Spring XML配置
- Spring最小化xml配置二之注解方式@Autowired
- (笔记)Spring实战_最小化Spring XML配置(4)_使用Spring基于Java的配置