@PostConstruct、Listener、File、Interceptor的執行順序
阿新 • • 發佈:2018-06-24
int red tro println pack redis 過濾器 ack 觸發
Listener(在依賴註入之前 ):
在Servlet API中有一個ServletContextListener接口,它能夠監聽ServletContext對象的生命周期,實際上就是監聽Web應用的生命周期。
當Servlet容器啟動或終止Web應用時,會觸發ServletContextEvent事件,該事件由 ServletContextListener 來處理。在 ServletContextListener 接口中定義了處理ServletContextEvent事件的兩個方法。
contextInitialized(ServletContextEvent sce):當Servlet容器啟動Web應用時調用該方法。在調用完該方法之後,容器再對Filter初始化,並且對那些在Web應用啟動時就需要被初始化的Servlet進行初始化。
contextDestroyed(ServletContextEvent sce):當Servlet容器終止Web應用時調用該方法。在調用該方法之前,容器會先銷毀所有的Servlet和Filter過濾器。
web.xml
<listener> <listener-class>com.gjxx.system.utils.ContextListener</listener-class> </listener>
ContextListener.java
public class ContextListener implements ServletContextListener{public void contextInitialized(ServletContextEvent sce) { System.out.println("1111111111111111111"); } public void contextDestroyed(ServletContextEvent sce) { System.out.println("22222222222222222222222"); } }
@PostConstruct(在依賴註入之後,更適合調用數據庫放入redis中)
spring.xml
<context:component-scan base-package="com.gjxx.system.controller,com.gjxx.system.utils" />
LoginServiceImpl.java
@Component public class LoginServiceImpl{ @Autowired private RedisTemplate<String, String> redisTemplate; @PostConstruct public void readProperties() { System.out.println("這裏要讀屬性了"); Map<String, String> map = (Map<String, String>) redisTemplate.opsForHash().get("aaa", "bb"); } }
@PostConstruct、Listener、File、Interceptor的執行順序