2.2 自动化装配bean
组件扫描(component scanning):Spring会自动发现应用上下文
中所创建的bean。
自动装配(autowiring):Spring自动满足bean之间的依赖。
@Component注解:这个简单的注解表明该类会作为组件类,并告知Spring要为这个类创建bean。
组件扫描默认是不启用的。我们还需要显式配置一下Spring,从而命令它去寻找带有@Component注解的类,并为其创建bean。
@ComponentScan:这个注解能够在Spring中启用组件扫描。@ComponentScan默认会扫描与配置类相同的包,将会扫描这个包以及这个包下的所有子包。
如果你更倾向于使用XML来启用组件扫描的话,那么可以使用Spring context命名空间的<context:component-scan>
2.2.2 为组件扫描的bean命名
2.2.3 设置组件扫描的基础包
@ComponentScan(basePackages={"包名1","包名2"})
2.2.4 通过为bean添加注解实现自动装配
简单来说,自动装配就是让Spring自动满足bean依赖的一种方法,在满足依赖的过程中,会在Spring应用上下文中寻找匹配某个bean需求
的其他bean。为了声明要进行自动装配,我们可以借助Spring的@Autowired注解
CDPlayer类。它的构造器上添加了@Autowired注解,这表明当Spring创建CDPlayerbean的时候,会通过这个构造器来进行实例化并且会传入一个可设置给
CompactDisc类型的bean
如果没有匹配的bean,那么在应用上下文创建的时候,Spring会抛出一个异常。为了避免异常的出现,你可以将@Autowired的
required属性设置为false:
2.2.5 验证自动装配
2.3 通过Java代码装配bean
2.3.1 创建配置类
创建JavaConfig类的关键在于为其添加@Configuration注解,@Configuration注解表明这个类是一个配置类,该类应该包
含在Spring应用上下文中如何创建bean的细节
2.4.1 创建XML配置规范
在使用XML为Spring装配bean之前,你需要创建一个新的配置规范。在使用JavaConfig的时候,这意味着要创建一个带
有@Configuration注解的类,而在XML配置中,这意味着要创建一个XML文件,并且要以<beans>元素为根
3.1.1 配置profile bean
在条件化创建bean方面,Spring的profile机制是一种很棒的方法
3.4 bean的作用域
Spring定义了多种作用域,可以基于这些作用域创建bean,包括:
单例(Singleton):在整个应用中,只创建bean的一个实例。
原型(Prototype):每次注入或者通过Spring应用上下文获取的时候,都会创建一个新的bean实例。
会话(Session):在Web应用中,为每个会话创建一个bean实例。
请求(Rquest):在Web应用中,为每个请求创建一个bean实例。
3.5.1 注入外部的值