SpringBootServlet:RegistrationBean
概述
功能介绍
Spring Boot提供的针对Servlet 3.0+容器的注册bean基类。该类的⽬的是⽤于向Servlet容器(Tomcat,Jetty等)注册⼯作组件,⽐
如Servlet,Filter或者EventListener。
这是⼀个抽象基类,实现了接⼝ServletContextInitializer。ServletContextInitializer约定了当前RegistrationBean会在Servlet启动时被调⽤⽅法#onStartup。
该抽象基类提供了如下功能:
1. 当前注册bean的优先级,通过属性order指定,缺省值为最低优先级Ordered.LOWEST_PRECEDENCE。
2. 当前注册bean是否被禁⽤,通过属性enabled指定。如果被禁⽤,Servlet容器启动时并不执⾏该注册bean的注册动作。缺省值
为true。
3. 通过抽象⽅法的⽅式约定了实现⼦类必须实现某些功能,⽐如具体注册什么以及具体的注册逻辑都必须由⼦类实现提供。
继承关系
应⽤
该类是⼀个抽象基类,主要⽬的是被⼦类继承和实现,具体有哪些⼦类可以参考上⾯的继承关系图。
源代码
源代码版本 : 2.1.3.RELEASE
package org.springframework.boot.web.servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import org.apachemons.logging.Log;
import org.apachemons.logging.LogFactory;
import Ordered;
import org.springframework.util.StringUtils;
public abstract class RegistrationBean implements ServletContextInitializer, Ordered {
private static final Log logger = Log(RegistrationBean.class);
private int order = Ordered.LOWEST_PRECEDENCE;
private boolean enabled =true;
// ServletContextInitializer 接⼝约定的⽅法,会在 Servlet 容器启动时被调⽤,
// 注意这⾥使⽤了 final 关键字,禁⽌⼦类覆盖
@Override
public final void onStartup(ServletContext servletContext)throws ServletException {  String description =getDescription();
if(!isEnabled()){
logger.info(StringUtils.capitalize(description)
+" was not registered (disabled)");
return;
}
register(description, servletContext);
}
/**
* Return a description of the registration. For example "Servlet resourceServlet"  * @return a description of the registration
*/
protected abstract String getDescription();
/**
* Register this bean with the servlet context.
* 要求⼦类实现的主要⽅法 : 注册当前bean到指定 servlet 上下⽂
* @param description a description of the item being registered
* @param servletContext the servlet context
*/
protected abstract void register(String description, ServletContext servletContext);
/**
* Flag to indicate that the registration is enabled.
* @param enabled the enabled to set
*/
public void setEnabled(boolean enabled){
}
/**
* Return if the registration is enabled.
* @return if enabled (default true)
*/
public boolean isEnabled(){
abled;
}
/**
servlet和tomcat的关系
* Set the order of the registration bean.
* @param order the order
*/
public void setOrder(int order){
}
/**
* Get the order of the registration bean.
* @return the order
*/
@Override
public int getOrder(){
der;
}
}
}
参考⽂章

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。