当前位置:   article > 正文

SpringBoot--自动配置相关注解(@Configuration等)--使用/实例_@configuration使用案例

@configuration使用案例

原文网址:SpringBoot--自动配置相关注解(@Configuration等)--使用/实例_IT利刃出鞘的博客-CSDN博客

简介

说明

        本文介绍SpringBoot自动配置相关的注解。

源码示例

        SpringBoot里的自动配置类很多,路径是:spring-boot-autoconfigure-2.3.0.RELEASE.jar:META-INF\spring.factories

以Redis的配置为例:

  1. package org.springframework.boot.autoconfigure.data.redis;
  2. import java.net.UnknownHostException;
  3. import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
  4. import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  5. import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  6. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.context.annotation.Import;
  10. import org.springframework.data.redis.connection.RedisConnectionFactory;
  11. import org.springframework.data.redis.core.RedisOperations;
  12. import org.springframework.data.redis.core.RedisTemplate;
  13. import org.springframework.data.redis.core.StringRedisTemplate;
  14. @Configuration(proxyBeanMethods = false)
  15. @ConditionalOnClass(RedisOperations.class)
  16. @EnableConfigurationProperties(RedisProperties.class)
  17. @Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
  18. public class RedisAutoConfiguration {
  19. @Bean
  20. @ConditionalOnMissingBean(name = "redisTemplate")
  21. public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
  22. throws UnknownHostException {
  23. RedisTemplate<Object, Object> template = new RedisTemplate<>();
  24. template.setConnectionFactory(redisConnectionFactory);
  25. return template;
  26. }
  27. @Bean
  28. @ConditionalOnMissingBean
  29. public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)
  30. throws UnknownHostException {
  31. StringRedisTemplate template = new StringRedisTemplate();
  32. template.setConnectionFactory(redisConnectionFactory);
  33. return template;
  34. }
  35. }

@Configuration

@Configuration用于将一个类设置为配置类。

作用

  1. 提供bean。在类里的方法上加上@Bean注解
    1. 见:此文  (搜索“@Configuration+@Bean”)
  2. 导入其他配置。
    1. 可以配合@Import注解,通过@Import注解导入其他使用@Configuration的类。

相关网址

  1. Spring(SpringBoot)--装配Bean(提供Bean)--方法/实例_IT利刃出鞘的博客-CSDN博客
    1. 搜索:“@Configuration+@Bean”
  2. SpringBoot--@Configuration(proxyBeanMethods = false) 的作用_IT利刃出鞘的博客-CSDN博客

@Import

说明

导入配置类(@Configuration标记的类)。

相关网址

  1. Spring(SpringBoot)--装配Bean(提供Bean)--方法/实例_IT利刃出鞘的博客-CSDN博客
    1. 搜索:“@Import”

@AutoConfigureOrder

说明

        指定自动配置类的自动配置顺序。

        只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureOrder会失效。

示例

@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)

@AutoConfigureBefore

说明

        在指定的配置类之前进行配置。

        只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureBefore会失效。

示例

@AutoConfigureBefore({ XxxAutoConfiguration.class, YyyAutoConfiguration.class})

@AutoConfigureAfter

说明

        在指定的配置类之前进行配置。

        只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureAfter会失效。

示例

@AutoConfigureBefore({ XxxAutoConfiguration.class, YyyAutoConfiguration.class})

@ConditionalOnClass等

说明

在满足条件时才配置这个自动配置类。

示例

@ConditionalOnClass(RedisOperations.class)

相关网址

  1. Spring(SpringBoot)--条件注入--方法/示例_IT利刃出鞘的博客-CSDN博客_springboot条件注入

@EnableConfigurationProperties

说明

使用实体类获取配置。

示例

@EnableConfigurationProperties(RedisProperties.class)

相关网址

  1. SpringBoot--获得配置_IT利刃出鞘的博客-CSDN博客_conditionalonproperty

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/615340
推荐阅读
相关标签
  

闽ICP备14008679号