Spring Boot框架中如何优雅的注入实体Bean

本文详细介绍了在Spring Boot框架中如何优雅地注入实体Bean,包括常规注入、配置注入和条件注入。常规注入主要通过注解完成,配置注入则结合Spring Boot配置文件进行。条件注入利用Spring的条件注解,如@ConditionalOnProperty、@ConditionalOnExpression等,允许在满足特定条件时注入Bean。此外,文章还提到了自定义条件注入和外部导入第三方组件的策略。
摘要由CSDN通过智能技术生成

Spring Boot框架中,注入实体Bean是几乎每一个Java程序员都能遇到的事情,因为Spring Boot采用约定优于配置的策略,去除了原来在Spring MVC中通过Xml进行注入的方式,全部通过Java Configuration的编码方式进行实体Bean的注入,

因此我们在开发中,对于外部组件、自己封装的业务SDK等等都需要开发者自行将实体Bean注入到Spring的容器中,然后通过注解在Spring的框架中方便的进行使用

那么,在Spring Boot框架中,我们在注入实体Bean时,如何优雅的进行注入呢?或者我们在注入实体Bean的同时,我们应该注意什么?

常规注入

常规注入很简单,通过使用@Bean注解即可完成简单的实体Bean注入,如下示例:

@Configuration
public class AdminKernelConfig {
   
    @Bean
    public DynamicWechatRoute dynamicWechatRoute(){
   
        return new DynamicWechatRoute();
    }
}

在常规注入时,假如我们要注入的Bean是通过构造函数来创建的,此时主要有2中方式进行构造

通过@Autowired注解引入外部依赖Bean,然后传递进行构造,如下代码:

@Configuration
public class AdminKernelConfig {
   
    @Autowired 
    Environment environment;
    
    @Bean
    public DynamicWechatRoute dynamicWechatRoute(){
   
        return new DynamicWechatRoute(environment);
    }
}

另外也可以通过参数传递直接引用,代码如下:

@Configuration
public class AdminKernelConfig {
   
    
    @Bean
    public DynamicWechatRoute dynamicWechatRoute(Environment environment){
   
        return new DynamicWechatRoute(environment);
    }
}

配置注入

很多时候我们创建的实体类都是需要通过外部传参进行构造的,通过基础类型参数或者封装的实体Property类进行构造,一般外部参数是通过写在Spring Boot的配置中

通过@Value注解引入外部变量进行实体Bean构造,如下:

@Configuration
public class AdminKernelConfig {
   
    
    @Value("${signKey}")
    String signKey;
    
    @Bean
    public DynamicWechatRoute dynamicWechatRoute(){
   
        return new DynamicWechatRoute(signKey);
    }
}

上面这种是很常规简单的做法,我们构造的实体类只需要一个基础String类型即可完成构造

但通常情况下,外部参数通常都很多,这种情况我们通常会单独写一个配置属性类进行封装,然后在实体类中通过该配置属性类进行参数构造,通过@EnableConfigurationProperties@ConfigurationProperties(prefix = "your.prefix")这两个注解配合使用实现效果

@ConfigurationProperties注解作用于我们的配置属性类上,配置一个前缀属性即可,例如:

@ConfigurationProperties(prefix = "test")
public class TestProperties {
   

    private String accessKeyId;

    private String accessKeySecret;
    //getter & setter

}

配上属性前缀test,此时我们可以在application.yml的配置文件中进行配置,代码如下:

test:
    accessKeyId: abc
    accessKeySecret: cdeeeeeeeeeeeee

配置好后,我们在我们的JavaConfiguration配置类即可进行引用注入,如下:

@Configuration
@EnableConfigurationProperties(TestProperties.class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值