有关@PostConstruct的使用:
首先这个注解是由Java提供的,它用来修饰一个非静态的void方法。它会在服务器加载Servlet的时候运行,并且只运行一次。
我们项目中一定会用到的就是环境隔离以及Redis
下面就从这两个方面进行分析:
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;
}
}
然后就可以在需要使用的地方进行EnvironmentConstant.env
的方式进行获取当前运行的环境了。
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);
}
/**
* 移除元素
*/
public static void remove(Object key) {
remove....
}
}
在使用的时候直接RedisUtil.redisTemplates
就可以获取到redis的实例。