@EnableAutoConfiguration 注解我们看下它的源码,发现它是一个组合注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({EnableAutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class[] exclude() default {}; String[] excludeName() default {};
}
@EnableAutoConfiguration 注解大致处理流程就是:
1、先去扫描已经被 @Component 所注释的类,当然会先判断有没有 @Condition 相关的注解。
2、然后递归的取扫描该类中的 @ImportResource,@PropertySource,@ComponentScan,@Bean,@Import。一直处理完。
参考:@EnableAutoConfiguration 配置解释
@Configuration
@EnableAutoConfiguration public class RedisConfig {
@Bean
@ConfigurationProperties(prefix = "spring.redis.pool") public JedisPoolConfig getRedisConfig() {
JedisPoolConfig config = new JedisPoolConfig(); return config;
}
@Bean @ConfigurationProperties(prefix = "spring.redis") public JedisConnectionFactory getConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setUsePool(true); JedisPoolConfig config = getRedisConfig(); factory.setPoolConfig(config); return factory; } @Bean public RedisTemplate getRedisTemplate() { JedisConnectionFactory factory = getConnectionFactory(); RedisTemplate template = new StringRedisTemplate(factory); return template; }
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于