唐僧喜欢小龙女

导航

ServletContainerInitializer 接口的作用

1、接口的作用

容器在启动应用的时候,会扫描当前应用每一个jar包里面
META-INF/services/javax.servlet.ServletContainerInitializer
指定的实现类,启动并运行这个实现类的onStartup方法;onStartup里面获取感兴趣的类型

2、代码事例

import com.kuang.service.HelloService;

import javax.servlet.ServletContainerInitializer;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.HandlesTypes;
import java.util.Set;

/**
* HandlesTypes 的作用,在容器启动的时候,注解里面放的类的子类,或者实现类都能获取到
*
*/
@HandlesTypes({HelloService.class})
public class MyServletInit implements ServletContainerInitializer {
/**
*
*
* 应用启动的时候会执行onStartup 这个方法
* @param set
* @param servletContext 这个上下文用来存储信息的
* @throws ServletException 一个web 对应一个servletContext
*/
public void onStartup(Set<Class<?>> set, ServletContext servletContext) throws ServletException {

System.out.println("感兴趣的类型:");
for (Class<?> cla: set) {
System.out.println(cla);
}

}


}

2.1 @HandlesTypes 这个注解的作用

@HandlesTypes的作用是把@HandlesTypes这个注解的value 的子类或者实现(不包括value本身)能在容器启动的时候在onStartup这个方法里获取到

3、javax.servlet.ServletContainerInitializer这个文件的位置

 

posted on 2021-05-29 21:34  与时具进&不忘初心  阅读(231)  评论(0编辑  收藏  举报