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"/>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • html简单登录页面代码[通俗易懂]

    html简单登录页面代码[通俗易懂]图片必须是在Imges下的否则显示不出来(复制代码的话把图片换成你的图片就好了)代码如下&lt;html&gt;&lt;head&gt;&lt;title&gt;tes

  • Java设计模式之创建型:单例模式

    Java设计模式之创建型:单例模式

  • J1939协议之通俗易懂—-简介

    J1939协议之通俗易懂—-简介J1939简介 J1939协议简介J1939协议是由美国汽车工程师协会(SAE)(SAE协会简介)定义的一组标准。J1939标准用于卡车、公共汽车和移动液压等重型车辆。在许多方面,J1939标准类似于旧版J1708和J1587标准,但J1939标准协议建立在CAN(控制器区域网络,ISO11898)上。物理层(J1939/11)描述了针对客车的电气接口。数据链路层描述…

  • 线程池参数及配置「建议收藏」

    线程池参数及配置「建议收藏」线程池-线程池参数及配置在实际项目中线程的应用都会使用线程池来管理,线程池的常用参数及配置学习记录。目录线程池-线程池参数及配置一、线程池在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁。如果并发的线程数多,并且每个线程都是…

  • vue-router 中 meta的用法

    vue-router 中 meta的用法如果我想做下面这个功能:路由代码:用这个获取

  • 跨链协议ChainBridge简明教程【EVM/Substrate】「建议收藏」

    跨链协议ChainBridge简明教程【EVM/Substrate】「建议收藏」ChainBridge是一个可扩展的跨链通信协议,目前兼容EMV和Substrate链,支持两个不同的EVM区块链、或者一个EVM链与一个Substrate链之间的跨链桥接与通证转移,支持ERC20、ERC721等多种类型的通证的跨链转移,以及普通数据的跨链转移。在这个教程中,我们将介绍ChainBridge的基本构成和安装方法,并利用ChainBridge实现Substrate原生资产和以太坊ERC20/ERC721通证之间的跨链转移。用自己熟悉的语言学习以太坊开发:Java|Php|

发表回复

您的电子邮箱地址不会被公开。

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