Tomcat部署Spring项目

简介: 虽然Spring Boot火了一段时间,Spring在旧的项目中还是有不少的用武之地,在Tomcat中部署Spring也是比较基础的技能。web.xmlweb.xml是tomcat servlet容器部署的描述文件,在每个需要使用tomcta部署的应用中都需要有这个文件。

虽然Spring Boot火了一段时间,Spring在旧的项目中还是有不少的用武之地,在Tomcat中部署Spring也是比较基础的技能。

web.xml

web.xml是tomcat servlet容器部署的描述文件,在每个需要使用tomcta部署的应用中都需要有这个文件。

常见标签:
<context-param>
<servlet>
<filter>
<listner>

参考:http://wiki.metawerx.net/wiki/Web.xml

ContextLoaderListener

在旧的项目中,我们常看到ContextLoaderListener的这种用法:

<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>

它有两种用途:

  1. 绑定ApplicationContext的生命周期到ServletContext
  2. 自动的创建ApplicationContext,因此你不需要精确的指定去创建ApplicatiionContext,这是一种更方便的用法。

参考:https://stackoverflow.com/questions/11815339/role-purpose-of-contextloaderlistener-in-spring

实际上,我们还有几种其它的用法,并非要明确的指定ContextLoaderListener
另外用法1:

  1. 先在xml文件中指定一个Servlet,指定其name,然后在web.xml同目录下创建一个其名称后缀加上-servlet的文件。

如:

 <servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

然后创建dispatcherServlet-servlet.xml,其与web.xml在同一目录

另外用法2:

<servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:applicationContext.xml,classpath*:applicationContext-web.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

一个错误

还有今天一直碰到的一个错误,没来得及解决


img_20be8ec212daaecf8c8e3e7d21d5d9ff.png
image.png

Spring的项目中依赖了etcd,bean的配置文件里一些bean的配置比如redis的连接时动态配置的,而动态配置的属性要在生效之前从etcd中拉取配置。

老的项目代码写的有点乱,启动的时候没有加载etcd的配置,etcd相关的代码没有执行,弄了半天没弄好。

碰其它的代码有时候难免有些问题...

最后

今天碰了下一个比较老的项目,关于Tomcat的一些内容有些忘记了,简单记录一下。

目录
相关文章
|
1月前
|
Java Spring
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
【编程笔记】在 Spring 项目中使用 RestTemplate 发送网络请求
94 0
|
2月前
|
缓存 NoSQL Java
Spring Boot项目中热点场景详解(万字总结)
Spring Boot项目中热点场景详解(万字总结)
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
39 0
|
30天前
|
SpringCloudAlibaba Java 持续交付
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
【构建一套Spring Cloud项目的大概步骤】&【Springcloud Alibaba微服务分布式架构学习资料】
130 0
|
2月前
|
监控 IDE Java
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
Java项目调试实战:如何高效调试Spring Boot项目中的GET请求,并通过equalsIgnoreCase()解决大小写不一致问题
40 0
|
3天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
14 0
|
6天前
|
Java 应用服务中间件 Linux
阿里云服务器部署多个tomcat
阿里云服务器部署多个tomcat
|
1月前
|
缓存 NoSQL Java
spring cache整合redis实现springboot项目中的缓存功能
spring cache整合redis实现springboot项目中的缓存功能
45 1
|
1月前
|
Java Shell API
通用Shell脚本执行Spring Boot项目Jar包
通用Shell脚本执行Spring Boot项目Jar包
|
1月前
|
存储 Java 关系型数据库
Spring Batch学习记录及示例项目代码
Spring Batch学习记录及示例项目代码