Spring 对 Java 配置的支持是由 @Configuration
注解和 @Bean
注解来实现的。
- 有
@Bean
注解的 方法将会实例化、配置和初始化一个 新对象,这个对象将由 Spring 的 IoC 容器来管理。@Bean
声明所起到的作用与<bean/>
元素类似。 - 被
@Configuration
所注解的类则表示这个类的主要目的是作为 bean 定义的资源。被@Configuration 声明的类可以通过在同一个类的内部调用@bean
方法来设置嵌入 bean 的依赖关系。
例如: 最简单的 @Configuration
声明类请参考下面的代码:
@Configuration public class AppConfig{ @Bean public MyService myService() { return new MyServiceImpl(); } }
对于上面的@Beans 配置文件相同的 X
<beans> <bean id="myService" class="com.somnus.services.MyServiceImpl"/> </beans>
上述配置方式的实例化方式如下:利用 AnnotationConfigApplicationContext 类进行实例化
public static void main(String[] args) { ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class); MyService myService = ctx.getBean(MyService.class); myService.doStuff(); }
要使用组件组建扫描,仅需用@Configuration 进行注解即可:
@Configuration @ComponentScan(basePackages = "com.somnus") public class AppConfig { ... }