注解 @Configuration @Autowired @ConditionalOnProperty

注解表示配置信息

@Configuration
public class TokenStoreConfig {

@Autowired,依赖注入,可选

@Autowired(required=false)
private RedisTemplate<String, Object>  redisTemplate ;

@Bean @ConditionalOnProperty,什么时候创建Bean

@Bean
@ConditionalOnProperty(prefix="security.oauth2.token.store",name="type" ,havingValue="jdbc" ,matchIfMissing=false)
public JdbcTokenStore jdbcTokenStore(){
security:
  oauth2:
    token:
      store:
        type: redis

这个可以作为默认Bean

@Bean
@ConditionalOnProperty(prefix="security.oauth2.token.store",name="type" ,havingValue="redis" ,matchIfMissing=true)
public RedisTemplateTokenStore redisTokenStore(RedisConnectionFactory connectionFactory){
Assert.state(connectionFactory != null, "connectionFactory must be provided");

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`@ConditionalOnProperty` 和 `@ConfigurationProperties` 是 Spring Framework 中常用的注解。 `@ConditionalOnProperty` 是一个条件注解,用于根据配置文件中的属性值来决定是否创建一个 Bean。它可以用于类级别或方法级别的注解。例如,如果你想要根据某个配置属性的值来决定是否创建一个特定的 Bean,你可以使用 `@ConditionalOnProperty` 来实现这个条件。 示例代码: ```java @Configuration public class MyConfiguration { @Bean @ConditionalOnProperty(name = "myapp.feature.enabled", havingValue = "true") public MyBean myBean() { return new MyBean(); } } ``` 上面的代码中,`myBean()` 方法只有在 `myapp.feature.enabled` 属性的值为 "true" 时才会创建一个 `MyBean` 实例。 `@ConfigurationProperties` 是一个用于绑定配置属性到一个 POJO 类的注解。通过使用它,你可以将配置文件中的属性值映射到一个 Java 类的字段或属性上。这样,你就可以方便地使用这些属性值,并且可以利用 Spring 的自动类型转换和校验机制。 示例代码: ```java @Configuration @ConfigurationProperties(prefix = "myapp") public class MyAppProperties { private boolean featureEnabled; public boolean isFeatureEnabled() { return featureEnabled; } public void setFeatureEnabled(boolean featureEnabled) { this.featureEnabled = featureEnabled; } } ``` 上面的代码定义了一个 `MyAppProperties` 类,并将前缀为 "myapp" 的配置属性绑定到该类的字段上。你可以通过 `@Autowired` 或 `@Value` 注解将这个类的实例注入到其他 Bean 中,然后使用其中的属性值。 希望以上解答对你有所帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值