Spring Boot源码(一):去除web.xml
2024-10-08 08:13:04
spring boot中:
public class MyWebApplicationInitializer implements WebApplicationInitializer { @Override
public void onStartup(ServletContext servletCxt) { // Load Spring web application configuration
AnnotationConfigWebApplicationContext ac = new AnnotationConfigWebApplicationContext();
ac.register(AppConfig.class);
ac.refresh(); // Create and register the DispatcherServlet
DispatcherServlet servlet = new DispatcherServlet(ac);
ServletRegistration.Dynamic registration = servletCxt.addServlet("app", servlet);
registration.setLoadOnStartup(1);
registration.addMapping("/app/*");
}
}
在原来的spring mvc中web.xml:
<web-app> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/app-context.xml</param-value>
</context-param> <servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping> </web-app>
参考官方文档:
它的作用就是注册和初始化DispatcherServlet
其中:
<servlet>
<servlet-name>app</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value></param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> <servlet-mapping>
<servlet-name>app</servlet-name>
<url-pattern>/app/*</url-pattern>
</servlet-mapping>
而spring boot中的这四句代码与上面一样:
不过web.xml中还可以向容器中注入三大组件,servlet,filter,listener
可以通过@WebServlet,@WebFilter,@WebListener注解方式注入。
不过spring boot中用的是SPI来注入,关于怎么注入,下篇再说。
最新文章
- Linux查找含有某字符串的所有文件
- [codeforces 339]C. Xenia and Weights
- MySQL常用问题解决方法
- 项目Windows服务安装命令:
- HDU 4258 Covered Walkway 斜率优化DP
- MapView
- 【BZOJ】【3295】【CQOI2011】动态逆序对
- jq向上无缝滚动
- 带计时器的做题器(gui
- mysql02
- 使apache解析域名到目录的方法
- @property和@synthesize
- php和java中的加密和解密
- access十万级数据分页
- 洛谷 P2059 [JLOI2013]卡牌游戏 解题报告
- 【LOJ】#2187. 「SHOI2014」三叉神经树
- PHP中unset,array_splice删除数组中元素的区别
- 005.SMB之user级别配置
- V-rep学习笔记:机器人路径规划1
- Git -- 从远程库克隆