默认情况下,Spring Boot 使用嵌入式容器来运行应用程序。在这种情况下,Spring Boot 使用public static void main 入口点来启动嵌入式Web 服务器。此外,它还负责将Servlet ,Filter 和ServletContextInitializer bean 从应用程序上下文绑定到嵌入式servlet 容器。
Spring Boot 的另一个特性是它会自动扫描同一个包中的所有类或Main 类的子包中的组件。
Spring Boot 提供了将其部署到外部容器的方式。在这种情况下,我们必须扩展SpringBootServletInitializer :
- /**
- * War部署
- *
- * @author SanLi
- * Created by 2689170096@qq.com on 2018/4/15
- */
- public class ServletInitializer extends SpringBootServletInitializer {
-
- @Override
- protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
- return application.sources(Application.class);
- }
-
- @Override
- public void onStartup(ServletContext servletContext) throws ServletException {
- super.onStartup(servletContext);
- servletContext.addListener(new HttpSessionEventPublisher());
- }
- }
这里外部servlet 容器查找在war包下的META-INF 文件夹下MANIFEST.MF文件中定义的Main-class ,SpringBootServletInitializer 将负责绑定Servlet ,Filter 和ServletContextInitializer 。
6、打包和部署
最后,让我们看看如何打包和部署应用程序。这两个框架都支持Maven 和Gradle 等通用包管理技术。但是在部署方面,这些框架差异很大。例如,Spring Boot Maven插件在Maven 中提供Spring Boot 支持。它还允许打包可执行jar 或war 包并就地 运行应用程序。
在部署环境中Spring Boot 对比Spring 的一些优点包括:
- 提供嵌入式容器支持
- 使用命令java -jar独立运行jar
- 在外部容器中部署时,可以选择排除依赖关系以避免潜在的jar冲突
- 部署时灵活指定配置文件的选项
- 用于集成测试的随机端口生成
7、结论
简而言之,我们可以说Spring Boot 只是Spring 本身的扩展,使开发,测试和部署更加方便。
【编辑推荐】 - Springboot,SSM框架比较,区别
- 阿里工程师开发了一款免费工具,提升Kubernetes应用开发效率
- Vim哭了,浏览器就能远程VS Code开发,还支持Docker快速部署运行
- 干货分享:六个知名的Go语言Web框架
- 小程序多端框架全面测评
【责任编辑:张燕妮 TEL:(010)68476606】
点赞 0 (编辑:晋中站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|