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容器提供的功能
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。