Tomcat部署Spring项目

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

web.xml

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

常见标签:



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

ContextLoaderListener

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


        contextConfigLocation
        
            classpath:applicationContext.xml
        
    

    
        org.springframework.web.context.ContextLoaderListener
    

它有两种用途:

  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的文件。

如:

 
        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        1
    

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

另外用法2:


        dispatcherServlet
        org.springframework.web.servlet.DispatcherServlet
        
            contextConfigLocation
            classpath*:applicationContext.xml,classpath*:applicationContext-web.xml
        
        1
    

一个错误

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


image.png

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

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

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

最后

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

你可能感兴趣的:(Tomcat部署Spring项目)