有关@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的实例。