@PostConstruct注解在业务开发时使用频率还是挺高的,但是要明白的是这是Java为我们提供的,非Spring.
作用:
例如在做支付宝支付需要处理回调地址,测试正式并不一样,在写测试用例时也需判断,@PostConstruct注解在此时就可以解决该问题
条件:
修饰非静态void方法
加载时机:
Servlet加载时运行,并且只会运行一次
1.创建一个运行态变量
2.引用该运行态变量
在项目启动时我们可以看到在加油@PostConstruct注解的方法执行了
其实@PostConstruct注解的强大并不止于此,在我们编写工具类时提供的外部方法需要设置成static,但是该方法中引用了由spring注入的bean,这样就导致了一个很尴尬的局面,@PostConstruct注解就可以很巧妙的解决该情况.
方案如下:
1.定义一个和spring注入的bean一样的变量 但是需要是由static进行修饰
2.定义一个init方法,使用@PostConstruct注解进行修饰,方法内部具体操作就是将 非static修饰的bean赋值给由static修饰的bean
3.在需要向外部提供的方法中需要操作该注入bean时就使用我们定义的这个由static修饰的bean即可