Spring整合Servlet


在servlet里面創建工廠、然后獲取實例對象

    //創建工廠
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    
    //獲取實例對象
    
    UserService userService = (UserService) context.getBean("us");
    
    userService.save();

初步整合暴露的問題

1. 重復創建工廠。

2. 工廠創建的時機有點晚--- 提前創建 ---提前到項目發布----> 用listener去監聽項目的發布。(有8個監聽器) --- ServletContextListener

整合Servlet

只要項目一發布,就立即創建工廠,那么我們必須的抓住項目發布的這個契機。 以前在servlet階段,學過一種東西 監聽器  , 可以監聽作用域對象的創建與銷毀 , SerlvetContext, 這是最大的作用域,全局只有一個對象。 我們都能想到這個點子上, spring框架肯定能夠想得到。

在web.xml 中配置 監聽器 並且配置param 指定spring配置文件所在

<!-- 這里僅僅是聲明了一個監聽器,只要servletContext創建了就執行監聽器里面的方法。 在方法里面要解析xml文件,然后完成工廠的創建工作。 -->
  <listener>
      <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  
  <!-- 指定了xml的位置在哪里 -->
  <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

通過工具類獲取之前創建好的工廠

ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
UserService userService = (UserService) context.getBean("us");
userService.save();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM