zoukankan      html  css  js  c++  java
  • Spring整合web开发

    问题:

    正常整合Servlet和Spring没有问题的,但是每次执行Servlet的时候加载Spring配置,加载Spring环境.这样会太麻烦了。

    解决办法:

    • 在Servlet的init方法中加载Spring配置文件?
    • 当前这个Servlet可以使用,但是其他的Servlet的用不了了!!!
    • 将加载的信息内容放到ServletContext中.ServletContext对象时全局的对象.服务器启动的时候创建的.在创建ServletContext的时候就加载Spring的环境.
    • ServletContextListener:用于监听ServletContext对象的创建和销毁的.

    步骤:

    • 导入;spring-web-3.2.0.RELEASE.jar
    • 在web.xml中配置:
     <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>
     
     <context-param>
         <param-name>contextConfigLocation</param-name>
         <param-value>classpath:applicationContext.xml</param-value>
     </context-param>
    

    修改程序的代码:

    WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
    
    WebApplicationContext applicationContext = (WebApplicationContext) getServletContext().getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
    

    上述两种方式都是获得WebApplicationContext的方式,然后通过他就可以取到bean了。

    注意:

    • 在spring的自动注入中普通的POJO类(不是servlet程序)都可以使用@Autowired进行自动注入,但是除了两类:Filter和Servlet无法使用自动注入属性。(因为这两个归tomcat容器管理)可以用init(集承自HttpServlet后重写init方法)方法中实例化对象,所以通用的办法,像上面做鞋的方法,这种也就是在servlet中是这样的而情况
    • 也就是说servlet是tomcat容器管理,而这个spring配置文件中的对象都是在该项目的ApplicationContext中所以是取不到这个bean的,虽然在程序加载的时候已经把bean产生了,但是还是取不到的,所以servlet取bean的方式通常都是通过ApplicationContext来取得。
    • Spring和Web应用的整合这是在web应用启动的时候通过一个监听器去启动了XmlWebApplicationContext Spring容器,并将这个容器实例放入到ServletContext的Map里,Map里以WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,对于的字符串也就是WebApplicationContext.class.getName() + ".ROOT";也就是"org.springframework.web.context.WebApplicationContext.ROOT",在Servlet环境下可以通过这个来访问Spring容器,同样Spring中当然也可以访问ServletContext。
    • 而springmvc中可能会成功,这个后面再尝试。
  • 相关阅读:
    路由器只要能连接上,就能得到密码,
    jmeter上传文件搞了一天,才搞定,没高人帮忙效率就是低,赶紧记下来,以备后用
    1关0不关
    AJAX学习
    建表原则
    设计模式——代理模式
    jdk动态代理机制
    ArrayList源码分析
    Java集合类:HashMap (基于JDK1.8)
    SpringMVC的数据转换、格式化和数据校验
  • 原文地址:https://www.cnblogs.com/oneNightStand/p/5984563.html
Copyright © 2011-2022 走看看