RedisProperties类
a、application.properties配置参数示例
spring.redis.database=0
spring.redis.host=127.0.0.1
spring.redis.password=123
spring.redis.port=6379
spring.redis.pool.max-idle=8
spring.redis.pool.min-idle=0
spring.redis.pool.max-active=8
spring.redis.pool.max-wait=-1
b、application.yml配置参数示例
spring:
redis :
host : localhost
port : 6379
password : 123
database : 1
pool.max-idle : 8
pool.min-idle : 1
pool.max-active : 8
pool.max-wait : -1
c、RedisProperties 源码
源码分析
此类被@ConfigurationProperties注解,表示从外部文件注入属性值,外部文件中的参数会自动封装到RedisProperties中
RedisAutoConfiguration类源码
源码分析
此类被@EnableConfigurationProperties注解,所以SpringBoot会触发对RedisProperties执行自动绑定属性值。
此类会自动创建bean对象: redis连接池JedisConnectionFactory和redis模板类(RedisTemplate和StringRedisTemplate)。直接在应用中通过@Autowire就可以注入以上对象。
项目启动类启动时如何关联到配置类RedisAutoConfiguration
查看源码@SpringBootApplication被@EnableAutoConfiguration注解
被@EnableAutoConfiguration注解时,SpringBoot启动时会扫描对应jar包中的META-INF/spring-autoconfigure-metadata.properties文件,并初始化里面的配置的类。查看spring-autoconfigure-metadata.properties,里面配置了上文的RedisAutoConfiguration类,所以我们可以直接在类中注入RedisTemplate
项目启动时,主启动类被@EnableAutoConfiguration注解,会扫描其引入的jar包中的spring.factories文件。
小结:
1)项目主启动类上被@SpringBootApplication注解,@SpringBootApplication又被@EnableAutoConfiguration注解。@EnableAutoConfiguration会触发扫描项目引入的jar包中的spring.factories文件。主启动类再加上注解@EnableCaching后,这样就会触发初始化类org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration。
2)RedisAutoConfiguration被@EnableConfigurationProperties注解,会触发对RedisProperties执行自动绑定属性值。
3)RedisProperties类被@ConfigurationProperties注解,表示从外部文件(如application.properties)注入属性值。application.properties中的参数会被自动封装到RedisProperties中。