发表:2022-09-09 00:03:09 浏览数:
来源:作者:
因为这部分工作是Spring MVC做的而不是Spring Boot,Spring Boot 打成的 jar 包和普通的 jar 包还是有一定区别的,本文目录springboot项目打包成war用tomcat运行好还是打包成jar直接启动好为何spring和springboot的关系是什么应该怎么理解springboot和springmvc区别Springboot能替代传统ssm架构吗springboot项目打包成war用tomcat运行好还是打包成jar直接启动好为何Spring Boot 为我们提供了两种打包的方式:jar 和 war,虽然我们也可以通过配置集成 JSP 通过 jar 包方式运行,关键就在于Spring Boot 打成的 jar 包包含了自己所依赖的其他 jar 包,如果一个项目依然是一个程序包,也就是我们打包好的项目代码了,打完的包我们可以部署在 Tomcat 或其他的 web 容器中。
Spring Boot 为我们提供了两种打包的方式:jar 和 war,开发人员可以很方便地修改两种打包方式,那么打包成哪种方式启动比较好呢?
Jar
Spring Boo 默认的打包方式就是 jar,因为“约定优于配置”的原则,所以我们什么也不配置,打出来的包就是 jar 格式的,当然我们也可以在 pom.xml 中加上一行配置(我一般用 maven)。
《packaging》jar《/packaging》在 《build》 内配置打包的名称,就完成了打包的配置:
最后执行打包命令即可:
mvn clean package打包完成后,在项目的 target 目录下会生成一个 jar 包,也就是我们打包好的项目代码了;Spring Boot 打成的 jar 包和普通的 jar 包还是有一定区别的,关键就在于Spring Boot 打成的 jar 包包含了自己所依赖的其他 jar 包,并且内置了容器,默认把 Tomcat 也打进了 jar 包(也可以换成 jetty、undertow),我们可以直接运行这个 jar 包。
War
要把代码打成 war 包要分成以下几个步骤:
1. 修改 pom.xml 文件中的配置,将打包方式 《packaging》 设置成 war;
2. 排除内置的 Tomcat 容器,也就是不要把 Tomcat 包进来了;
3. 修改入口方法,让启动类继承 SpringBootServletInitializer,并且覆盖 configure 方法;或者单独创建个类继承这个类也行。
如果采用了 war 包部署,项目中配置文件中的一些配置将失效,比如 port、servlet.context-path 等;打完的包我们可以部署在 Tomcat 或其他的 web 容器中。
Jar or War
首先表明,我是倾向于使用 jar 包部署的,我们项目也是这么做的。至于选择哪种部署方式,可以考虑这几点:
war 包不排除 Tomcat 容器直接打包,我们甚至可以通过 java -jar xxx.war 的方式启动,这种情况先不做考虑;打包成 jar 还是 war,主要讨论的是使用内置容器还是外置容器的问题;
如果项目中有使用 JSP,那么使用 war 包部署会更方便一些,虽然我们也可以通过配置集成 JSP 通过 jar 包方式运行;新项目的话就不要用 JSP 了;
如果公司用的 web 容器不是 Tomcat、Jetty 或 undertow,那就只能打成 war 包部署;
如果公司一直使用 Tomcat 部署,对于 Tomcat 本身的优化有一定的能力,有完善的脚本、工具什么的,可以考虑使用 war 包部署;
我比较倾向于 jar 包部署,使用 Spring Boot 的内置容器,还是因为这样做,可以屏蔽(部分)运行环境的差异,开发人员开发出来的代码,打包好部署在测试、生产环境,我们并不需要单位每个环境之间 Tomcat 的配置可能有所不同,导致我们的程序无法正常运行,这可以让我们的交付能力变强。
所以有可能的话,可以尝试使用 docker,上面说到的屏蔽(部分)运行环境的差异,就变成了屏蔽(绝大部分)运行环境的差异了。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
大概说一下:Spring 是一个“引擎”Spring MVC 是基于 Spring 的一个 MVC 框架Spring Boot 是基于 Spring4 的条件注册的一套快速开发整合包Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC 框架(一些用 Spring 解耦的组件),用开发 web 应用( SpringMVC )。然后有发现每次开发都要搞很多依赖,写很多样板代码很麻烦,于是搞了一些懒人整合包( starter ),这套就是 Spring Boot 。spring 框架有超多的延伸产品例如 boot security jpa etc... 但它的基础就是 spring 的 ioc 和 aop ioc 提供了依赖注入的容器 aop 解决了面向横切面的编程 然后在此两者的基础上实现了其他延伸产品的高级功能 Spring MVC 呢是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题 因为 Spring 的配置太复杂了 各种 XML JavaConfig hin 麻烦 于是懒人改变世界推出了 Spring boot 约定优于配置 简化了 spring 的配置流程 简单谈下自己的理解 若有错误请指正
springboot和springmvc区别:
spring boot只是一个配置工具,整合工具,辅助工具.
springmvc是框架,项目中实际运行的代码
Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的ioc和 aop,ioc 提供了依赖注入的容器, aop解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。
Spring MVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
Spring Boot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。
Spring Boot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。
对使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。
总结:
Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC框架(一些用Spring 解耦的组件),用开发 web 应用( SpringMVC )。然后发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是 Spring Boot。
所以,用最简练的语言概括就是:
Spring 是一个“引擎”;
Spring MVC 是基于Spring的一个 MVC 框架;
Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。
谢邀~
首先我认为大概率会的(我可以意会题主想表达的意思),但是这个问题又有一些怪怪的,Spring Boot和SSM也不冲突,使用Spring Boot依然可以使用Mybatis,只能说,未来会有越来越多的公司使用Spring Boot,而不是直接对SSM做集成。
SSM VS Spring Boot
先看看SSM里面有什么:Spring核心IOC,模块和模块之间解耦,增加代码的复用性,AOP面向切面编程; Spring MVC,轻量级的MVC框架;Mybatis ,ORM框架,直接使用SQL更容易进行掌控和调优。
而Spring Boot的出现,主要是可以很大程度上减少构建配置的工作。对于我们程序员来说,我们现在做一个项目的时候,不用像以前搭建SSM架构那样,需要花时间写大量的XML配置,而Spring Boot只需要通过注解的形式,在代码中配置即可。
用Spring Boot开发,究竟能有多快
继续说说Spring Boot的优点,它到底能为开发人员提速多少呢?
Spring Boot提供了大部分主流框架的集成,提供了丰富的 Starters,集成主流开源框架,只需要进行简单的配置就可以完成。
Spring Boot让部署变的更加简单,因为它本身就内嵌了应用服务器,开发完成的程序,只需要一行命令就可以启动,结合Docker使用效果更好。
注意,只是简化,该写的业务代码还是要写的。
Spring Boot && 微服务(服务化)
企业级应用的一个趋势,就是把从前一个很庞大的项目,拆分成N个独立的服务,几个服务配合,完成完整的业务流程。这样做的好处是服务能力的复用,每次修改只针对一个服务进行开发,增加迭代速度。
如果一个项目依然是一个程序包,使用SSM“地狱般”的配置,忍忍也就过去了,服务发布慢,也可以忍受,反正就一个包嘛,但是如果项目服务化,甚至微服务化了之后,这般的复杂是无法忍受的。
Spring Boot令开发速度增快,部署速度增快,所以更符合现在微服务(服务化)的趋势。(有些公司不一定能做到微服务级别,所以我在微服务后面增加了一个说明——服务化)
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
Sary作为沙特B2B电商领头羊,在沙特电商行业的B2B市场份额中占80%。此次收购埃及同行Mowarrid,意味着Sary向北非市场的首次扩张,接下来Mowarrid也将作为Sary埃及站点开放。埃及是非洲第二大经济体,也是阿拉伯世界...
易贝滴眼液和贝复舒眼用凝胶一起用(贝复舒眼用凝胶冷冻后能用吗...
本文目录贝复舒眼用凝胶冷冻后能用吗贝复舒凝胶的作用贝复舒眼用凝胶冷冻后能用吗贝复舒眼用凝胶冷冻后可能会影响到药物的效果,如果用于干眼症或严重
爱淘金为什么没有签到了(保险公司做保险业务员,几个月没开单了...
本文目录保险公司做保险业务员,几个月没开单了,是不是应该辞职了网络成了诈骗犯的法外之地,为何抓捕困难为什么大学老师总是爱整一些所谓的平时分,
本文目录弈航李宁工厂店是正品吗商场李宁工厂折扣店里的鞋子是真货么广州新塘有没有李宁工厂店济南李宁工厂店有哪些具体地址,谢谢李宁超级工厂店怎么
本文目录鬼吹灯 Shirley杨怎么读Shirley中文怎么读shirley怎么念这些英文名怎么读Judy赞美Doris海洋女神名,属于大海
本文目录这段时间关注朴槿惠的人为何突然猛增为什么日本解散了财阀,韩国却不能腾讯的势力到底有多大,为什么说腾讯是中国版的超级财阀这段时间关注朴
lookfantasticapp下载(微信向苹果投降了吗13.4有黑夜模式了)
本文目录微信向苹果投降了吗13.4有黑夜模式了有什么好用的图片编辑软件怎么看look直播你喜欢什么app,喜欢它的理由是什么微信向苹果投降了
惠氏铂臻莹萃有机奶粉(有机奶粉和普通奶粉的区别大吗有机奶粉哪...
本文目录有机奶粉和普通奶粉的区别大吗有机奶粉哪款更值得推荐6个月宝宝喝惠氏启赋蕴萃有机奶粉怎么样铂臻奶粉怎么样对宝宝健康好吗惠氏铂臻奶粉港版
体验式购物和比价购物哪个才是趋势?你们网购一般在哪里,有优惠...
有优惠吗欢迎来交流汽车充气泵哪个牌子好体验式购物和比价购物哪个才是趋势购物,所以说在淘宝上购物也不是很积极主动,购物会有比价,本文目录体验式
国内cfa最好的十大培训机构(中国最好的金融培训机构是哪家)
本文目录中国最好的金融培训机构是哪家国内哪家CFA辅导机构好,金程教育业内好像挺知名的CFA考的人多吗,哪家辅导机构最出名找金程辅导CFA,
跨境电商还值不值得做跨境通能摘帽吗跨境电商未来的前景如何2021年跨境电商有前途吗2020年,很多人都通过跨境电商获得了利润,但是如果在跨境
facebook message apk(台湾、香港和澳门的人平时聊天都用微信吗...
本文目录台湾、香港和澳门的人平时聊天都用微信吗外贸人应该如何利用碎片化时间有效吸引客户询盘中国大部分人都玩微信,外国人玩什么通过什么方式交流
超越中国的美国优秀公司有哪些(世界500强中国公司超美国,中国...
本文目录世界500强中国公司超美国,中国上榜公司前三名都是谁美国上市公司的排名是什么美国上市公司都有什么世界500强中国公司超美国,中国都有
离岸公司注册代理在哪个网站发布信息(你们注册离岸公司会找哪家...
本文目录你们注册离岸公司会找哪家代理公司帮忙会比较好我想注册离岸公司,可不知道该在哪里注册请大家推荐下想开设离岸账号接受美金,推荐一家正规的
在服用辅酶Q10保健品时,为什么要补充什么是辅酶Q10具体有什么作用啊辅酶q10的作用1、帮助保护心脏:辅酶Q10有助于为心肌提供充足氧气,为什么要补充辅酶Q10就是人体细胞中的一种物质,辅酶Q10有抗肿瘤作用,辅酶Q10有抗...