Spring笔记(4)

Spring笔记(4)

集成Web环境

1.步骤

  1. 导入Spring-web坐标

    <!--    spring-web-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>5.0.5.RELEASE</version>
        </dependency>
    
  2. 将ApplicationContext.xml的文件名称存入web.xml的全局参数中

    <!--  全局初始化参数-->
    <!--applicationContext文件名-->
    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    
  3. 配置监听器

    <!--  配置监听器-->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
    
  4. 编写Servlet

  5. 使用WebApplicationContextUtils获取ApplicationContext(获取的为子类WebApp..)

    //获取app对象(使用工具包中的方法)
    ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    

2.pom.xml

<!--    servlet-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>
<!--    servlet-jsp-->
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>2.2.1</version>
      <scope>provided</scope>
    </dependency>
<!--    spring-context-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
<!--    jdbc-druid-->
    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>druid</artifactId>
      <version>1.0.9</version>
    </dependency>
<!--    jdbc-c3p0-->
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.2</version>
    </dependency>
<!--    spring-web-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>5.0.5.RELEASE</version>
    </dependency>
<plugin>
  <groupId>org.apache.tomcat.maven</groupId>
  <artifactId>tomcat7-maven-plugin</artifactId>
  <version>2.2</version>
</plugin>

3.servlet具体实现

3.1工具包实现:(封装好的)

  • ​ servlet中的app通过工具包中的方法获得()
  • ​ 在servletContext域中获得app对象
  • ​ 域中app对象在监听器模块内部实现存储
public class ApplicationContextLoaderUtil {
    public static ApplicationContext getApplicationContext(ServletContext servletContext){
        //在域中获取applicationContext对象
        ApplicationContext app = (ApplicationContext) servletContext.getAttribute("app");
        //测试
        System.out.println("通过工具类获取app");
        return app;
    }
}

3.2监听器实现(封装好的)

手动配置(web.xml中)

<!--  全局初始化参数-->
  <!--applicationContext文件名-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

<!--  配置监听器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

内部封装好

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //在servletContext中获取ApplicationContext对象
    //获取servletContext
    ServletContext servletContext = request.getServletContext();
    //获取app对象(使用工具包中的方法)
    ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);
    //获取userService
    UserService userService = app.getBean(UserService.class);
    userService.save();

4.注意

配置pom.xml时:

servlet-api和servlet-jsp-api时应该加入范围

<scope>provided</scope>

applicationContext.xml中:

添加扫描注解

<context:component-scan base-package="dao"/>
<context:component-scan base-package="service"/>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115198.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java 面试之算法[通俗易懂]

    Java 面试之算法[通俗易懂]二分查找intBinarySearch(DataTypea[],intlow,inthigh,DataTypex){if(low&amp;amp;amp;amp;gt;high){return-1;//查找失败}mid=(low+high)/2;//折半if(a[mid]==x){r…

    2022年7月18日
    20
  • Polar码概述[通俗易懂]

    Polar码概述[通俗易懂]2016年11月18日,在美国内华达州里诺召开的3GPPRAN1#87次会议,确定PolarCode作为5GeMBB(增强移动宽带)场景下控制信道编码方案。2008年,ErdalArikan在国际信息论ISIT会议上首次提出了信道极化(ChannelPolarization)的概念;2009年在“IEEETransactiononInformationTheory”期刊上

    2022年10月25日
    0
  • pip安装scrapy失败_scrapy框架运行

    pip安装scrapy失败_scrapy框架运行错误如图所示,running setup.py install for Twisted…..errorTwisted依赖库安装报错,重新下载手动安装一下下载网址:https://www.lfd.uci.edu/~gohlke/pythonlibs注意:看下安装的python是什么版本,我安装的python 3.9.0,就下载cp39,64位的下载安装的版本不对,就会报:Twisted-20.3.0-cp38-cp38-win_amd64.whl is not a support…

    2022年8月19日
    7
  • html5 最小化,当前界面最小化快捷键 窗口最小化和全屏化的快捷键是什么?

    html5 最小化,当前界面最小化快捷键 窗口最小化和全屏化的快捷键是什么?怎样用快捷键显示最小化的窗口在键盘上同时按下Win+D键,可以最小化所有窗口。在键盘上再次同时按下Win+D键,可以还原步骤1最小化的所有窗口。在键盘上同时按下Windows+M键,可以最小化所有窗口。在键盘上同时按下Windows+Shift+M键。电脑窗口最小化的快捷键是什么?ALT+Esc可以使当前窗口最小化。Win+D最小化所有窗口,再按一下就可以还原窗口。Windows+M最小…

    2022年10月22日
    0
  • Linux中的pushd和popd

    Linux中的pushd和popd其实,很早就知道pushd和popd在linux中可以用来方便地在多个目录之间切换。那时比较浮躁,感觉切换目录没必要这么复杂。在实际中,发现通过使用pushd和popd能够极大地提高效率。0、使用cd-进行目录切换一般,Shell中都可以通过cd-命令回到之前的目录,下面是一个例子:$pwd/home/lfqy$cd/$cd-/home/lfqy$实际上,cd-中,-就

    2022年10月26日
    0
  • linux vim 显示行数(vim 删除行)

    在Linux环境下的编辑器有vi、vim、gedit等等。进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的。我们有二种办法可以解决:第一种是,手动显示:在vim命令行模式下输入:setnu取消显示:在vim命令行模式下输入:setnonu第二种是,永久自动显示:我们修改一个配置文件。我们输入命令:vim~/.vimrc…

    2022年4月11日
    131

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号