SpringBoot應用中很多時候會用到反射機制獲取類,這個時候就會涉及到動態獲取上下文;
一般我們採用啟動的時候設定上下文的這種方案:這種方案對於使用SpringBoot內建tomcat啟動時,是沒有問題的,上下文會在啟動的時候set進去,
但是如果打成war包使用自己的tomcat就會空指標異常,因為使用自己tomcat啟動不會呼叫main方法,所以上下文並沒有set進去
下面是改造方案
註釋掉SpringContextUtil.setApplicationContext(app);
SpringContextUtil通過@Component註解,set方法通過@Autowired自動註解,有個需要注意的地方就是方法的註解不同作用在static方法
這樣使用第二種方案就可以完美解決上下文獲取
最新評論