Spring @Configuration

下面是一个典型的spring配置文件(application-config.xml):

Xml代码

  1. <beans>
  2. <bean id="orderService" class="com.acme.OrderService"/>
  3. <constructor-arg ref="orderRepository"/>
  4. </bean>
  5. <bean id="orderRepository" class="com.acme.OrderRepository"/>
  6. <constructor-arg ref="dataSource"/>
  7. </bean>
  8. </beans>

然后你就可以像这样来使用是bean了:

Java代码

  1. ApplicationContext ctx = new ClassPathXmlApplicationContext("application-config.xml");
  2. OrderService orderService = (OrderService) ctx.getBean("orderService");

现在Spring JavaConfiguration这个项目提供了一种通过java代码来装配bean的方案:

[java] view plain copy

  1. @Configuration
  2. public class ApplicationConfig {
  3. public @Bean OrderService orderService() {
  4. return new OrderService(orderRepository());
  5. }
  6. public @Bean OrderRepository orderRepository() {
  7. return new OrderRepository(dataSource());
  8. }
  9. public @Bean DataSource dataSource() {
  10. // instantiate and return an new DataSource …
  11. }
  12. }

然后你就可以像这样来使用是bean了:

  1. JavaConfigApplicationContext ctx = new JavaConfigApplicationContext(ApplicationConfig.class);
  2. OrderService orderService = ctx.getBean(OrderService.class);

这么做有什么好处呢?

1.使用纯java代码,不在需要xml

2.在配置中也可享受OO带来的好处

3.类型安全对重构也能提供良好的支持

4.依旧能享受到所有springIoC容器提供的功能

时间: 2024-11-07 01:43:23

Spring @Configuration的相关文章

出现unmapped spring configuration files found

intell idea启动出现unmapped spring configuration files found提示. 把spring里面的内容都打勾.

IntelliJ 15 unmapped spring configuration files found

IntelliJ Spring Configuration Check 用IntelliJ 导入现有工程时,如果原来的工程中有spring,每次打开工程就会提示:Spring Configuration Check 开始不知道怎么回事,但工程不影响. 偶然发现这个提示是把spring的配置文件由IntelliJ来管理,打开模块设置.添加spring配置文件的模块. 然后把sping的配置文件添加进来 好了,这样不会再有这个提示了. 至于IntelliJ怎么管理,有什么强大的功能,还没有发现.

Spring Configuration Check Unmapped Spring configuration files found

Spring Configuration Check Unmapped Spring configuration files found 项目中有xml文件,但没有被用IntelliJ 导入现有工程时,如果原来的工程中有spring,每次打开工程就会提示:Spring Configuration Check 开始不知道怎么回事,但工程不影响. 工程结构(Project Structure)有一个Facets 选项,可以设置各种框架. Facets中则可以设置当前项目所用的框架,如Hibernat

Spring @Configuration 使用

虽然 2.0 版本发布以来,Spring 陆续提供了十多个注解,但是提供的这些注解只是为了在某些情况下简化 XML 的配置,并非要取代 XML 配置方式.这一点可以从 Spring IoC 容器的初始化类可以看出:ApplicationContext 接口的最常用的实现类是 ClassPathXmlApplicationContext 和 FileSystemXmlApplicationContext,以及面向 Portlet 的 XmlPortletApplicationContext 和面向

idea报Unmapped Spring configuration files found.

用IntelliJ 导入现有工程时,如果原来的工程中有spring,每次打开工程就会提示:Spring Configuration Check Unmapped Spring configuration files found. 工程结构(Project Structure)有一个Facets 选项,可以设置各种框架. Facets中则可以设置当前项目所用的框架,如Hibernate和Spring,如果是Web项目,也需要添加Web的Facets,这个界面中的显示和Modules中的很类似.如果

IDEA 每次启动提示spring configuration check

原文地址:http://blog.51cto.com/xiaok007/2155074

Spring - Java Based Configuration

So far you have seen how we configure Spring beans using XML configuration file. If you are comfortable with XML configuration, then it is really not required to learn how to proceed with Java-based configuration as you are going to achieve the same

Spring - Annotation Based Configuration

Starting from Spring 2.5 it became possible to configure the dependency injection using annotations. So instead of using XML to describe a bean wiring, you can move the bean configuration into the component class itself by using annotations on the re

Mybatis Spring multiple databases Java configuration

https://stackoverflow.com/questions/18201075/mybatis-spring-multiple-databases-java-configuration ******************************************************************** I'm working with Spring and Mybatis and I have two databases, the configuration for