内容简介:这是一个类级注解。如下所示,被它注解的类可能包含多个被同等作用的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》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
现代应用数学手册
《现代应用数学手册》编委会 / 清华大学出版社 / 2005-1-1 / 48.00元
本书是进行科学计算的常备工具书,内容新颖,查阅方便,实用性强。主要介绍生产、科研、管理、数学等实践中在计算机上使用的各种计算方法和技巧。全书分为14章,依次为数值计算概论、插值法、函数逼近与曲线拟合、数值积分与数值微分、方程求根、线性方程组的直接解法和迭代解法、矩阵特征值问题、非线性方程组数值解与最优化方法、常微分方程初值问题和边值问题的数值解法、偏微分方程的数值解法、多重网络法和积分方程数值解法......一起来看看 《现代应用数学手册》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
Markdown 在线编辑器
Markdown 在线编辑器