使用tomcat设定shared lib共享同样的jar

 更新时间:2021年07月23日 11:49:49   作者:傻不拉几猫  
这篇文章主要介绍了使用tomcat设定shared lib共享同样的jar操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

在项目越来越多的时候,部署在tomcat的发布包也会越来越多,这样难免有很多相同的jar会被加载,占用大量的永久存续区内存,通过设定shared lib来控制相同的jar只加载一个,

这样有以下好处:

1、避免不同项目加载相同的jar,减少对永久存续区的内存占用

2、提高tomcat的启动速度,因为少加载了许多重复的jar

一、如何设定shared lib

方式一:

修改conf文件下的catalina.properties文件,配置shared.loader的路径:

配置绝对路径:

shared.loader="D:hs/develop/shared/lib","D:/hs/develop/shared/lib/*.jar"

之后将相同的jar放在指定的文件夹下。

或配置相对路径:

shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar"

之后在和conf同目录下新建shared目录,将相同的jar放在lib里

方式二:

修改conf文件下的catalina.properties文件,配置common.loader的路径,追加shared lib的路径:

common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${catalina.home}/lib","${catalina.home}/lib/*.jar","${catalina.home}/lib/shared/*.jar"

之后在lib文件夹下新建一个shared目录,并将相同的jar放在shared目录下

二、catalina.home和catalina.base的区别

在一个tomcat下,catalina.home和catalina.base指向相同的位置,即bin等目录的父目录。

若是在安装多个Tomcat实例又不想安装多个软件备份的时可以使用这两个属性,在tomcat目录下只有 bin 和 lib 目录被多个tomcat示例公用,其它目录conf、logs、temp、webapps和work 是每个Tomcat实例自己独立的备份。

这时他们指向不同的位置:

catalina.home(安装目录):指向公用信息的位置,就是bin和lib的父目录。

catalina.base(工作目录):指向每个Tomcat目录私有信息的位置,就是conf、logs、temp、webapps和work的父目录。

三、tomcat6类加载机制

Commonclassloader

负责装载$CATALINA_HOME/common目录下的所有类和jar包,详细的配置可参考$CATALINA_HOME/conf/catalina.properties文件中的common.loader配置;该classloader装载的类对于Server class loader和Webapp class loader是可见的;Commonclass loader在Tomcat启动时创建,其parent classloader是System class loader;

Server classloader

负责装载Tomcat的核心类,位于$CATALINE_HOME/server目录下的所有类和jar,可由catalina.propreties中的server.loader配置指定;它在Tomcat启动时被创建,其parent loader是Commonclass loader;

Sharedclass loader

负责装载webapp公用的类,可以用户通过catalina.properties文件中的shared.loader属性来指定;它在Tomcat启动时被创建,其parentloader也是Common class loader;

Webappclassloader

它只负责加载各自app中WEB-INF/classes以及WEB-INF/lib下的类;其parentloader虽然是Shared class loader,但其加载策略和默认的类加载机制不太一样;

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Tomcat 多站点配置详解及实现方法

    Tomcat 多站点配置详解及实现方法

    这篇文章主要介绍了Tomcat 多站点配置详解及实现方法的相关资料,需要的朋友可以参考下
    2016-12-12
  • 解决Idea的tomcat启动报多个listener的错误问题

    解决Idea的tomcat启动报多个listener的错误问题

    这篇文章主要介绍了解决Idea的tomcat启动报多个listener的错误问题,本文给大家分享解决方法对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • IDEA Maven项目使用debug模式运行Tomcat的详细教程

    IDEA Maven项目使用debug模式运行Tomcat的详细教程

    这篇文章主要介绍了IDEA Maven项目使用debug模式运行Tomcat的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • MAC 命令行启动tomcat的详细介绍

    MAC 命令行启动tomcat的详细介绍

    这篇文章主要介绍了MAC 命令行启动tomcat的详细介绍的相关资料,主要是修改授权及命令启动的介绍,需要的朋友可以参考下
    2017-08-08
  • 关于Tomcat的服务器使用及说明

    关于Tomcat的服务器使用及说明

    这篇文章主要介绍了关于Tomcat的服务器使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 使用 jsvc 启动tomcat的方法(使用普通用户运行)

    使用 jsvc 启动tomcat的方法(使用普通用户运行)

    这篇文章主要介绍了使用 jsvc 启动tomcat(使用普通用户运行)的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • 详解windows 10中Tomcat安装和部署的教程

    详解windows 10中Tomcat安装和部署的教程

    这篇文章主要介绍了windows 10中Tomcat安装和部署教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Tomcat首次部署web项目流程图解

    Tomcat首次部署web项目流程图解

    这篇文章主要介绍了Tomcat首次部署web项目流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • idea中Tomcat服务器启动错误问题及解决

    idea中Tomcat服务器启动错误问题及解决

    这篇文章主要介绍了idea中Tomcat服务器启动错误问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • 为什么我的tomcat启动不起来

    为什么我的tomcat启动不起来

    tomcat安装好了,准备部署Web项目了,启动tomcat,发现没有反应,本文就来解决一下这个问题,感兴趣的小伙伴们可以参考一下
    2021-07-07

最新评论