结论:标注@Configuration(proxyBeanMethods = false)注解的配置类,类中被@Bean标注的方法将不会被spring通过CGLB代理,但是spring容器中还是有这个bean的,在spring容器中获取的bean(getBean()、@Autowired等方式获取)还是单例的,但是你通过直接调用方法,获取到的就会是一个新的bean
(1)先看 proxyBeanMethods = true (默认是true)的情况
@Configuration(proxyBeanMethods = true)
public class RedisConfig {
@Bean("redisTemplate")
public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<Object, Object> template = new RedisTemplate<>();
template.setConnectionFactory(redisConnectionFactory);
// key 的 String 序列化采用 StringRedisSerializer
StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
template.setKeySerializer(stringRedisSerializer);
template.setHashKeySerializer(stringRedisSerializer);
// 使用 FastJsonRedisSerializer 来序列化和反序列化redis 的 value的值
FastJson
Spring配置类@Configuration注解参数效果

最低0.47元/天 解锁文章

552

被折叠的 条评论
为什么被折叠?



