最近微服务比较火,小明我也学习下Spring Boot框架的使用。

首先创建一个项目,创建时选择Spring Initializr,然后Next,如下图:

填写项目信息,如下图:

下一步:

点击finish完成

OK,项目创建成功之后接下来我们来看看这个东西要怎么样去运行。首先我们看到在项目创建成功之后,在项目的根目录下会有一个artifactId+Application命名规则的入口类,如下图:

直接点击运行:

浏览器访问:

OK,至此,我们一个简单的Spring Boot工程已经创建出来了。

考虑到公司服务器使用jboss部署的,所以本地用tomcat、jboss启动一下

直接idea配置tomcat启动后浏览器访问报404错误,

问题解决:

第一步:

   新建一个SpringBootStartApplication 继承自 SpringBootServletInitializer

作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,

    此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似

【注意】:这个新建的类,与springboot的启动类是同级的

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;public class SpringBootStartApplication extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Springboot3Application.class);}
}

第二步:

   修改pom.xml文件,让springboot内嵌的tomcat在运行时不起作用

<!-- 使用外部tomcat 启动 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><!-- provided 表明该包只在编译和测试的时候使用,去除默认的tomcat --><scope>provided</scope></dependency>
pom文件修改打成war包:
<packaging>war</packaging>

启动tomcat

访问成功:

下面我们配置下jboss再启动下试试:

启动报错,这是为什么呢?

之前搭建springMVC项目的时候也踩过JBOSS的坑,我感觉我都能针对JBOSS专门写一篇部署注意事项的博客了,MVC项目踩得坑可以详见我的另一篇博客:https://blog.csdn.net/qq_19201215/article/details/98033743

这次我在WEB-INF下加上了配置文件:jboss-deployment-structure.xml

但是内容有变化:

<?xml version='1.0' encoding='UTF-8'?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1"><deployment><exclusions><module name="org.slf4j" /><module name="org.slf4j.impl" /><module name="org.apache.commons.logging" /><module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" /><module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" /><module name="com.fasterxml.jackson.core.jackson-annotations" /><module name="com.fasterxml.jackson.core.jackson-core" /><module name="com.fasterxml.jackson.core.jackson-databind" /><module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" /><module name="org.jboss.resteasy.resteasy-jackson2-provider" /><module name="com.alibaba.fastjson" /><module name="javax.xml.bind.jaxb-api" /><module name="org.apache.logging.log4j.log4j-api" /></exclusions><module-alias name="deployment.springboot-3"/></deployment>
</jboss-deployment-structure>

然后再添加jboss-web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web><!-- For context --><context-root>/</context-root>
</jboss-web>

重新启动成功!

spring boot 外部容器tomat、jboss部署相关推荐

  1. Spring Boot Server容器配置

    转载自 Spring Boot Server容器配置 参数配置容器 server.xx开头的是所有servlet容器通用的配置,server.tomcat.xx开头的是tomcat特有的参数,其它类似 ...

  2. spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别

    spring boot外部配置文件 基础环境 : 基础环境 版本 spring boot 2.7.0 JDK 8 测试代码: @SpringBootApplication public class D ...

  3. Spring Boot Maven聚合工程 打包部署教程

    Spring Boot 给聚合工程 打包部署,这里打jar包进行部署,首先等保证父子工程能正常运行,依赖都能加载,不会造成maven之间循环依赖等问题,如图 从上面的图来看,就会发生循环依赖的问题,这 ...

  4. 居然仅用浏览器,就完成了Spring Boot应用的开发与部署!

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一 ...

  5. git上托管的代码如何部署在阿里云上_居然仅用浏览器搞定Spring Boot应用的开发与部署...

    最近有幸试用了一下阿里云的一个新产品:云开发平台,体验一把全新的开发模式!虽然中间也碰到了一些问题,但整体的体验透露着未来感,因为整个过程都不需要使用我们最常用的IDEA,仅依靠浏览器就把一个Spri ...

  6. Spring Boot应用的打包和部署

    现在的IT开发,DevOps渐渐获得技术管理人员支持.云计算从ECS转向Docker容器技术.微服务的概念和讨论也越来越热,以上这些研究方面,最终都聚焦于软件的打包.分发和部署上. [Twelve-F ...

  7. Spring Boot细节挖掘(Docker部署项目)

    如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...

  8. spring boot 通过Maven + tomcat 自动化部署

    使用maven创建的springboot项目,默认是jar包,springboot还有自己带的tomcat. 现在为了简单实现本地自动发布项目到服务器,需要通过发布war包的形式,通过maven将项目 ...

  9. 我司Spring Boot 项目打包 + Shell 脚本部署详细总结,太有用了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 本篇和大家分享的是 Spring Boot 打包并结合 Shell 脚本命令部署,重点在分享一个shell 程序启动工具,希望能便利 ...

最新文章

  1. Weka 开发[1]-Instances类
  2. Windows Caffe中MNIST数据格式转换实现
  3. Linux Kernel TCP/IP Stack — L7 Layer — Application Socket I/O 接口类型
  4. Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
  5. kafka和mqtt的区别是什么?
  6. 你在京东购买的商品,是怎么出现在抖音里面的?
  7. JavaScript倒计时
  8. JS中window.showModalDialog()详解
  9. I00005 打印直角三角形字符图案
  10. 心理学专业转用户体验_用心理学设计奇妙的用户体验
  11. php js 比较,PHP与JS的比较
  12. c++ 指针_C/C++学习笔记——C提高:指针强化
  13. bzoj 2216: [Poi2011]Lightning Conductor(DP决策单调性)
  14. 计算机数值方法第三版答案百度云,数值计算方法课后习题答案(李庆扬等)..doc...
  15. 使用java语言实现移位密码加密过程
  16. 基于HTML5的机器猫在线商城设计与实现
  17. 操作系统-PV操作-理发师问题
  18. TestDirector介绍
  19. catia v5法矢数据软件_CATIA V5完全学习手册
  20. SQL触发器实例(下)

热门文章

  1. ERP实施顾问岗位职责
  2. 智慧校园管理系统开发
  3. 云南计算机一级b成绩查询入口,云南计算机一级考试成绩查询入口
  4. 记录红米K20pro至尊版刷机安装httpcanary抓包全过程
  5. pfc计算机仿真在矿山发展趋势,PFC电路的计算机仿真模拟.pdf
  6. QT关于界面常用设置
  7. ASCII码表(美国标准信息交换标准码)
  8. jquery.photoClip.js图片上传插件带拖动裁剪
  9. moviepy合成字幕
  10. 一文读懂基于小程序的图像识别