赞
踩
原文网址:SpringBoot--自动配置相关注解(@Configuration等)--使用/实例_IT利刃出鞘的博客-CSDN博客
说明
本文介绍SpringBoot自动配置相关的注解。
源码示例
SpringBoot里的自动配置类很多,路径是:spring-boot-autoconfigure-2.3.0.RELEASE.jar:META-INF\spring.factories
以Redis的配置为例:
- package org.springframework.boot.autoconfigure.data.redis;
-
- import java.net.UnknownHostException;
-
- import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
- import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
- import org.springframework.boot.context.properties.EnableConfigurationProperties;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.Import;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
- import org.springframework.data.redis.core.RedisOperations;
- import org.springframework.data.redis.core.RedisTemplate;
- import org.springframework.data.redis.core.StringRedisTemplate;
-
- @Configuration(proxyBeanMethods = false)
- @ConditionalOnClass(RedisOperations.class)
- @EnableConfigurationProperties(RedisProperties.class)
- @Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class })
- public class RedisAutoConfiguration {
-
- @Bean
- @ConditionalOnMissingBean(name = "redisTemplate")
- public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory)
- throws UnknownHostException {
- RedisTemplate<Object, Object> template = new RedisTemplate<>();
- template.setConnectionFactory(redisConnectionFactory);
- return template;
- }
-
- @Bean
- @ConditionalOnMissingBean
- public StringRedisTemplate stringRedisTemplate(RedisConnectionFactory redisConnectionFactory)
- throws UnknownHostException {
- StringRedisTemplate template = new StringRedisTemplate();
- template.setConnectionFactory(redisConnectionFactory);
- return template;
- }
-
- }
@Configuration用于将一个类设置为配置类。
作用
相关网址
说明
导入配置类(@Configuration标记的类)。
相关网址
说明
指定自动配置类的自动配置顺序。
只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureOrder会失效。
示例
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
说明
在指定的配置类之前进行配置。
只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureBefore会失效。
示例
@AutoConfigureBefore({ XxxAutoConfiguration.class, YyyAutoConfiguration.class})
说明
在指定的配置类之前进行配置。
只会对META-INF/spring.factories里面的配置类进行排序。如果配置类被@SpringBootApplication扫描到,那么这个@AutoConfigureAfter会失效。
示例
@AutoConfigureBefore({ XxxAutoConfiguration.class, YyyAutoConfiguration.class})
说明
在满足条件时才配置这个自动配置类。
示例
@ConditionalOnClass(RedisOperations.class)
相关网址
说明
使用实体类获取配置。
示例
@EnableConfigurationProperties(RedisProperties.class)
相关网址
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。