• 售前

  • 售后

热门帖子
入门百科

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

[复制链接]
六翼天使494 显示全部楼层 发表于 2021-8-14 14:52:29 |阅读模式 打印 上一主题 下一主题
在项目越来越多的时间,摆设在tomcat的发布包也会越来越多,如许难免有许多相同的jar会被加载,占用大量的永世存续区内存,通过设定shared lib来控制相同的jar只加载一个,
如许有以下长处:
1、避免不同项目加载相同的jar,淘汰对永世存续区的内存占用
2、进步tomcat的启动速度,由于少加载了许多重复的jar
一、怎样设定shared lib

方式一:

修改conf文件下的catalina.properties文件,配置shared.loader的路径:
配置绝对路径:
  1. shared.loader="D:hs/develop/shared/lib","D:/hs/develop/shared/lib/*.jar"
复制代码
之后将相同的jar放在指定的文件夹下。
或配置相对路径:
  1. shared.loader="${catalina.base}/shared/lib","${catalina.base}/shared/lib/*.jar"
复制代码
之后在和conf同目次下新建shared目次,将相同的jar放在lib里
方式二:

修改conf文件下的catalina.properties文件,配置common.loader的路径,追加shared lib的路径:
  1. 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实例自己独立的备份。
这时他们指向不同的位置:
  1. catalina.home
复制代码
(安装目次):指向公用信息的位置,就是bin和lib的父目次。
  1. catalina.base
复制代码
(工作目次):指向每个Tomcat目次私有信息的位置,就是conf、logs、temp、webapps和work的父目次。
三、tomcat6类加载机制
  1. 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;
  1. Server classloader
复制代码

负责装载Tomcat的焦点类,位于$CATALINE_HOME/server目次下的全部类和jar,可由catalina.propreties中的server.loader配置指定;它在Tomcat启动时被创建,其parent loader是Commonclass loader;
  1. Sharedclass loader
复制代码

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

它只负责加载各自app中WEB-INF/classes以及WEB-INF/lib下的类;其parentloader虽然是Shared class loader,但其加载计谋和默认的类加载机制不太一样;
以上为个人履历,盼望能给各人一个参考,也盼望各人多多支持脚本之家。

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作