内容简介:这是一个类级注解。如下所示,被它注解的类可能包含多个被同等作用的XML配置会像下面这样:
@Configuration
这是一个类级注解。如下所示,被它注解的类可能包含多个被 @Bean
注解的方法。Spring容器会调用这些方法,获得你初始化后的对象实例,并把他们注册为容器内的beans。
package spring.example @Configuration public class MyAppConfig { @bean public SomeBean someBean() { // 实例化并返回,也可进行初始化 return new SomeBeanImpl(); } }
同等作用的XML配置会像下面这样:
<bean name="someBean" class="spring.example.SomeBeanImpl"/>
@Configuration
类们实际上就是Spring管理的用于创建并注册bean实例的工厂。
Spring容器的启动
在Java-based的配置方式下,spring容器可以被 AnnotationConfigApplicationContext
启动,或者,针对Web应用 AnnotationConfigWebApplicationContext
也行。
new AnnotationConfigApplicationContext(MyAppConfig.class);
我们也可以指定包含了 @Configuration
类的有效包名:
new AnnotationConfigApplicationContext("spring.example");
基于上述两个重载方法,我们可以在单个package下放进多个JavaConfig类。
使用多个JavaConfig类
new AnnotationConfigApplicationContext( AppConfig.class, DataSourceConfig.class ); new AnnotationConfigApplicationContext("example.spring.app","example.spring.datasource");
配置类中的依赖注入
既然配置类会被Spring容器注册成beans,那意味着,我们可以像使用普通bean那样使用这个配置bean。在以下例子我们要把这个一个配置bean注入给另一个配置bean:
@Configuration public class AppConfig { // 方式一:注入DataSourceConfig @Autowired private DataSourceConfig dataSourceConfig; @Bean Client clientBean() { return new Client(dataSourceConfig.dataSourceBean()); } public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class, DataSourceConfig.class); context.getBean(Client.class).showData(); } // 方式二:为何要那么麻烦呢?直接注入DataSourceBean不就好了? @Autowired private DataSourceBean dataSourceBean; @Bean Client clientBean() { return new Client(dataSourceBean); } } @Configuration class DataSourceConfig { @Bean DataSourceBean dataSourceBean() { return new DataSourceBean(); } } class Client { private DataSourceBean dataSourceBean; Client(DataSourceBean dataSourceBean){ this.dataSourceBean = dataSourceBean; } public void showData() { System.out.println(dataSourceBean.getData()); } } class DataSourceBean { public String getData() { return "some data"; } }
以上所述就是小编给大家介绍的《Spring - Java-based configuration: Using @Configuration》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Mining
Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!