spring配置的可选方案
xml
javaConfig
自动扫描和自动装配
配置风格可以互相搭配,混合使用.
尽可能的使用自动配置机制.如果必须要显式配置(比如有些源代码不是由你来维护)推荐使用类型安全的javaConfig,只有需要xml命名空间并且javaConfig没有同样实现时使用xml
自动化装配
因为自动化装配最为强大和方便,所以首先介绍自动化装配
组件扫描:自动发现应用上下文创建的bean
自动装配:自动满足依赖
创建可发现的bean
@Component:表明被标注的类为组件类,告知spring创建bean
@ComponentScan:开启组件扫描
xml配置
<context:component-scan base-package="your package"/>
为组件扫描的bean命名
@Conponent(“name”)
@Named(“name”)
设置扫描基础包
使用@Configuration定义配置类
@ComponentScan(“package”)
@ComponentScan(basePackages={“1”,“2”})
@ComponentScan(basePackageClasses={1.class,2.class})
推荐使用basePackageClasses,因为类型安全.可以在包中创建用于扫描的空标记接口,避免引用实际的应用程序代码,保持对重构友好
自动装配
@AutoWired 可以使用在构造器,setter方法等,spring会尝试满足参数声明的依赖.
如果没有合适的bean将会抛出异常,可以将@AutoWired的required属性设置为false
也可以使用@Inject