@PostConstruct的理解
主要是处理一些静态的数据。加载顺序:构造方法 --> @Autowired/@value --> @PostConstruct,@Autowired和@value的加载应该不分先后
1、环境隔离
假如你项目中有个发送短信的接口,需要进行环境的隔离,可以在配置中进行配置,然后在使用的时候进行
@Value("${spring.profiles.active}")
private String environment;
以上方式可以获取到,但是不够优雅。可以按照以下方式使用:
@Component
public class EnvironmentConstant {
public static String env;
@Value("${spring.profiles.active}")
public String environment;
@PostConstruct
public void initialize() {
System.out.println("初始化环境...");
env = this.environment;
}
}
2、Redis使用
如果我们在使用redis的时候都是通过
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
的方式进行使用的话,那也难免是不够优雅的。可以使用如下方式进行处理
@Component
public class RedisUtil {
private static RedisTemplate<Object, Object> redisTemplates;
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
@PostConstruct
public void initialize() {
redisTemplates = this.redisTemplate;
}
/**
* 添加元素
*/
public static void set(Object key, Object value) {
if (key == null || value == null) {
return;
}
redisTemplates.opsForValue().set(key, value);
}
}
在使用的时候直接RedisUtil.set(key,value)
RedisUtil.redisTemplates ;//可以获取到redis的实例。
RedisUtil.set("key1","value1");//存储数据
参考地址:https://developer.aliyun.com/article/1092419