繁体   English   中英

我可以在Tomcat上加载servlet类之前运行代码吗?

[英]Can I run code before servlet class loading on Tomcat?

我正在对我的一些业务对象进行一些运行时字节码操作,并且以正确的顺序加载它们非常重要。 目前我只是在我的Startup servlet中以正确的顺序调用它们上的Class.getSimpleName()。 这一直很好,但如果有更好的方法,我全都耳朵。

但是,现在我需要一个servlet过滤器中的方法来返回一个具体的业务对象类型。 这导致类加载器首先加载该特定业务对象类(乱序)并且事情中断。

我想要的是能够在加载任何servlet或过滤器之前运行我的getSimpleName()hack。 是否有一些地方我可以把代码运行在类加载器甚至加载我的过滤器之前?

是的你可以。

查看ServletContextListener

tomcat类加载器以这种方式工作。

在此输入图像描述

如果你想在任何web-app类加载之前加载任何类,那么你可以将这些类放在一个jar文件中并将其部署到tomcat公共库,这些类将在你的web应用程序类被类加载之前加载装载机。

您可以在此处查看 apache tomcat类加载器的工作原理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM