[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]关于org.apache.catalina.startup.ContextConfig.jarsToSkip

上一篇:[备忘]tomcat启动时打印:At least one JAR was scanned for TLDs yet contained no TLDs
下一篇:[备忘]sql里使用正则匹配:regexp_matches

添加日期:2024/2/22 10:59:12 快速返回   返回列表 阅读138次
# Additional JARs (over and above the default JARs listed above) to skip when
# scanning for Servlet 3.0 pluggability features. These features include web
# fragments, annotations, SCIs and classes that match @HandlesTypes. The list
# must be a comma separated list of JAR file names.
org.apache.catalina.startup.ContextConfig.jarsToSkip=

扫描Servlet 3.0插件特性时,需要跳过的jar包,也就是不支持插件特性的jar包
---------------------------------------------
哪些特性:
web fragments, annotations, SCIs and classes that match @HandlesTypes

---------------------------------------------
(1)web-fragment是servlet3.0的新特性,
可以在jar包的WEB-INF/lib/web-fragment.xml配置东西

(2)annotations,是servlet3.0支持注解了,如下:

@WebServlet
声明一个servlet。

@WebInitParam
指定初始化参数。

@WebFilter
声明servlet过滤器。

@WebListener
声明WebListener

@HandlesTypes
声明ServletContainerInitializer可以处理的类类型。

@HttpConstraint
此注释在ServletSecurity批注中用于表示要应用于所有HTTP协议方法的安全性约束,对于这些方法,ServletSecurity批注中不会出现相应的HttpMethodConstraint元素。

@HttpMethodConstraint
此注释在ServletSecurity批注中用于表示特定HTTP协议消息的安全性约束。

@MultipartConfig
可以在Servlet类上指定的注释,指示Servlet的实例需要符合multipart/form-data MIME类型的请求。

@ServletSecurity
此注释用于Servlet实现类,以指定Servlet容器在HTTP协议消息上强制执行的安全性约束。

(3)SCIs and classes that match @HandlesTypes
"SCIs"是指Servlet Container Initializers,也是Servlet 3.0的新功能。
可以实现ServletContainerInitializer接口,并在META-INF/services/目录下创建javax.servlet.ServletContainerInitializer文件,指定实现了ServletContainerInitializer接口的类,以便Servlet容器在启动时加载并执行这些初始化器。

log4j2,就是使用ServletContainerInitializer来实现自动启动的。

当使用@HandlesTypes注解标记一个实现了ServletContainerInitializer接口的类时,容器会在启动时扫描类路径中所有的类,找到所有符合@HandlesTypes指定类型的类,并将其传递给标记的ServletContainerInitializer实现类的onStartup方法中。

如:
@HandlesTypes(WebApplicationInitializer.class)
public class SpringServletContainerInitializer implements ServletContainerInitializer

@HandlesTypes({Class1, Class2, Class3, ...})
public class AnInitializer implements ServletContainerInitializer {
 
    public void onStartup(Set<Class<?>> classes, ServletContext context)
            throws ServletException {
        // initialization code...
    }
}
tomcat找到类(继承,实现了Class1, Class2, Class3,@HandlesTypes中指定的类),
作为第一个参数,传递给onStartup()方法。

 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved