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

@Configuration 相当于beans、@bean相当于bean。

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

<beans>
  <bean id="orderService" class="com.acme.OrderService"/>
    <constructor-arg ref="orderRepository"/>
  </bean>
  <bean id="orderRepository" class="com.acme.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);

时间: 2024-12-28 09:16:09

使用@Configuration注解来代替Spring的bean配置的相关文章

Spring的bean配置

IOC其实是从我们平常new一个对象的对立面来说的,我们平常使用的对象一般直接使用关键字类new一个对象,患处很显然,使用new那么就表示当前模块已经不知不觉和new出的对象耦合了,而我们通常都是更高层次的抽象模块调用底层实现模块,这样就产生模块依赖于具体的实现,这与我们JAVA中提倡的面向接口面向抽象编程是相冲突的,而且这样做也带来系统的模块架构问题.很简单的例子,在进行数据库操作的时候,总是业务层调用DAO层,DAO一般采用接口开发,这在一定程度上满足了松耦合,使业务逻辑层不依赖于具体的DA

Spring容器,Bean配置信息,Bean实现类以及应用程序四者的相互关系(看书随笔)

Spring容器,Bean配置信息,Bean实现类以及应用程序四者的相互关系图: Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载\实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序调用.

spring中bean配置和bean注入

1 bean与spring容器的关系 Bean配置信息定义了Bean的实现及依赖关系,Spring容器根据各种形式的Bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载.实例化Bean,并建立Bean和Bean的依赖关系,最后将这些准备就绪的Bean放到Bean缓存池中,以供外层的应用程序进行调用. 1 bean配置 bean配置有三种方法: 基于xml配置Bean 使用注解定义Bean 基于java类提供Bean定义信息 1.1 基于xml配置Bean 1.2 使用注解定义Be

spring装配bean有几种方式?

一 前言 在XML中进行显式配置. 在Java中进行显式配置. 隐式的bean发现机制和自动装配 关于xml配置不会在本篇说明,有兴趣的读者可以自行了解学习: 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 二 自动装配bean 自动装配Bean主要通过如下两个方式实现自动装备bean 组件扫描(component scanning):Spring会自动扫描发现上下文中所创建的bean:对应

spring中bean的singleton属性

1.  UserDao.java package com.lxh.springSingleton; public interface UserDao { // 保存User public void save(); } 2.  UserDaoImpl.java package com.lxh.springSingleton; public class UserDaoImpl implements UserDao { @Override public void save() { System.out

Spring Java-based容器配置

多年以来,Spring大量的XML配置及复杂的依赖管理饱受非议. 为了实现免XML的开发体验.Spring加入了新的配置注解以支持Java Config开发模式,当中最重要的注解就是@Configuration和@Bean. 基本概念:@Bean和@Configuration 在Spring新的Java-configuration支持中,最核心的部分就是使用@Configuration注解的类和使用@Bean注解的类. @Bean注解用于指示一个方法实例化.配置,初始化一个新的被Spring容器

开涛spring3(12.4) - 零配置 之 12.4 基于Java类定义Bean配置元数据

12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件. 基于Java类定义Bean配置元数据中的@Configuration注解的类等价于XML配置文件,@Bean注解的方法等价于XML配置文件中的Bean定义. 基于Java类定义Bean配置元数据需要通过AnnotationConfigApplicationContext加载配置类及初始化容器,类似于XML配置文

Spring的Java配置方式

Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1     @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @Bean 这两个注解实现的: 1.@Configuration 作用于类上,相当于一个xml配置文件: 2.@Bean 作用于方法上,相当于xml配置中的<bean>: 2 示例 该示例演示了通过Java配置的方式进行配置Spring,并且实现了Spring IOC功能. 2.1 创建工程以

Spring boot之SpringApplicationBuilder,@@Configuration注解,@Component注解

SpringApplicationBuilder: 该方法的作用是可以把项目打包成war包 需要配置启动类,pom.xml文件等,具体见:http://blog.csdn.net/linzhiqiang0316/article/details/52601292 @SpringBootApplication public class FavoritesApplication extends SpringBootServletInitializer{ /** * 如此配置打包后可以用tomcat下使