Spring中如何使用@Configuration注解进行Spring中bean配置呢?
下文笔者讲述Spring中@Configuration注解的简介及功能说明,如下所示
@Configuration简介
在Spring3.0之前 spring中都必须使用一个xml配置文件,这个配置文件就是定义spring bean的配置 在Spring 3.0之后 我们可以使用@Configuration注解代替Spring配置文件
@Configuration使用示例
@Configuration用于定义配置类 可替换xml配置文件 被注解的类内部包含有一个或多个被@Bean注解的方法 这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描 用于构建bean定义 初始化Spring容器例:
import com.fasterxml.jackson.databind.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Description: 初始化配置项
*/
@Configuration
public class SpringConfig {
private static final Logger logger = LoggerFactory.getLogger(SpringConfig.class);
@Bean(name = "objectMapper")
ObjectMapper getObjectMapper() {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper;
}
}
//创建userService和accountService的实例
//accountService实例引用userService实例
@Configuration
@ComponentScan(basePackages = {"com.test.web"})
@Import(UserConfg.class)
@ImportResource(locations = {"classpath:config/spring-beans.xml"})
public class MainConfg {
@Bean(name = "userService", initMethod = "init", destroyMethod = "destroy")
@Scope("singleton")
public UserService userService() {
return new UserService();
}
@Bean
public AccountService accountService(UserService userService) {
AccountService as = new AccountService();
as.setUserService(userService);
return as;
}
}
注解
@Configuration:
说明这个类是一个配置类
@ComponentScan:
用于扫描指定包下面的注解类。
@Import:
用于导入其他的@Configuration配置类。
@ImportResource:
用于导入xml配置文件,比如某些配置一定要xml配置。
@Bean:
用于定义一个bean,可以指定初始、销毁方法,及bean范围等。
@Configuration的优点
1.使用纯java代码,不在需要xml 2.使spring配置也拥有面向对象的优势 3.类型安全对重构也能提供良好的支持 4.configuration也可以实现springIoC容器提供的功能
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


