使用@Configuration注解来代替Spring的bean配置

2018-03-21 21:45:20
996次阅读
0个评论
使用@Configuration注解来代替Spring的bean配置

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


<beans> 
        <bean id="orderService" class="xxx.OrderService"/> 
                <constructor-arg ref="orderRepository"/> 
        </bean> 
        <bean id="orderRepository" class="xxx.OrderRepository"/> 
                <constructor-arg ref="dataSource"/> 
        </bean> 
</beans>
然后你就可以像这样来使用是bean了:


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

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



@Configuration 
public class ApplicationConfig { 
   
        public @Bean OrderService orderService() { 
                return new OrderService(orderRepository()); 
        } 
   
        public @Bean OrderRepository orderRepository() { 
                return new OrderRepository(dataSource()); 
        } 
   
        public @Bean DataSource dataSource() { 
                // instantiate and return an new DataSource … 
        } 
}
然后你就可以像这样来使用是bean了:


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

收藏00

登录 后评论。没有帐号? 注册 一个。