@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;
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于