Spring配置方案
Spring容器负责创建应用程序中的bean并通过DI来协调这些对象之间的关系,Spring提供了三种可选方案来装配bean:
- 在XML中进行显示配置
- 在Java中进行显示配置
- 隐式的bean发现机制和自动装配
事实上,一般优先采取自动装配,只有特殊情况下才选择Java配置或XML配置。
自动装配
Spring从以下角度来实现自动化装配:
- 组件扫描(Component Scanning):Spring会自动发现应用上下文中所创建的bean
- 自动装配(Autowiring):Spring会自动满足bean之间的依赖
相关注解
- @Component:声明此类为一个组件类,Spring需要为此类创建一个bean(用于一个基本组件类)
- @ComponentScan:启用组件扫描,扫描并查找带有@Component的类,Spring会为它们创建bean(用于配置类)
- @Configuration:声明这是一个配置类(用于配置类)
- @ContextConfiguration(classes=AConfig.class):告诉Spring在AConfig类中加载配置
- @Autowired:自动注入bean,在使用bean的类的构造器上应用此注解,这个类其实也是一个组件类,也需要@Component(用于使用组件类的类)
使用步骤
- 在基本组件类上使用@Component注解
- 在使用上述组件类的组件类上使用@Component注解,并在其构造器上使用@Autowired注解,这样就可以将一个bean注入到使用它的组件类中
- 在配置类上使用@Configuration注解和@ComponentScan注解
- 在启动类中获取应用上下文以及bean:
ApplicationContext context = new AnnotationApplicationContext(Aconfig.class)
BeanClass beanName = (BeanClass)context.getBean(“beanName”)
Java装配
- 在配置类上使用@Configuration注解
- 在配置类中使用@Bean注解装配各种bean
- 在启动类中同上
XML装配
- 根标签为beans
- 用标签bean声明一个bean,id属性指定beanName,class属性指定BeanClass
- 构造器注入采用constructor-args
- setter注入采用property
- 启动类需要ClassPathXmlApplicationContext
好复杂 >_< ,需要时自己查算了,不记笔记了。