Spring中如何使用@Configuration注解进行Spring中bean配置呢?

书欣 Spring 发布时间:2023-01-04 11:18:20 阅读数:1585 1
下文笔者讲述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容器提供的功能
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/Spring/202301/5286.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者