Spring Boot 如何快速改造老项目?原来这么爽
来源:KL博客
http://www.kailing.pub/article/index/arcid/188.html
前言碎语
博主公司一个项目在开发中使用某些功能的时候,受限于spring低版本的限制,故索性将整个模块升级为spring boot,在这里做个记录,希望能帮助到有相同场景的朋友。
整个改造过程非常简单,耗时大概在2个小时左右,主要解决项目中的各种版本冲突,不过下面我会介绍一个神器。
老项目情况
1.项目使用spring-context作为容器,使用RabbitMQ提供RPC服务
2.spring.springframework 版本比较低,3.1.x的版本,升级后会变成4.3.x
3.项目使用maven构建
以上是项目的基本情况,针对如上情况,下面会详细描述改造过程中需要的关注点。
第一步:添加spring boot依赖
<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.7.RELEASE</version><scope>import</scope><type>pom</type></dependency></dependencies>
</dependencyManagement>
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>
</dependencies>
第二步:新增spring boot启动类,加载原先的xml配置
/**
* Created by kl on 2018/1/29.
* Content :Lbt-service-ext服务启动器
*/@SpringBootApplication(exclude = {RabbitAutoConfiguration.class})@ImportResource("service-context.xml")publicclassLbtServiceExtApplication{
publicstaticvoid main(String[] args) {SpringApplication application= newSpringApplication(LbtServiceExtApplication.class);application.setWebEnvironment(false);application.run(args);
}}
注意的地方:
1.排除了RabbitMQ的自动装载了,因为在xml中已经配置过了RabbitMQ的相关连接和服务信息了
2.设置了setWebEnvironment(false),标记项目为非web项目,因为只是提供RPC服务,所以不需要servlet容器。
第三步:尝试启动,排除jar冲突
这个时候可以启动main方法,看看能否启动了,一般情况下没那么容易就能启动起来,会有各种的jar冲突。我们项目从3.x到4.x,更是各种冲突。
下面介绍一个插件,破除jar冲突排除的烦恼,前提是在IDEA下开发,eclipse应该也有类似的。
插件名字:Maven Helper
可以代替mvn dependency:tree命令的使用了,这个插件可以更直观的列出项目依赖的jar,非常牛逼的是可以直接列出项目中有冲突的jar,这对找jar冲突非常有用,而且可以直接右键排除掉。
jar相关异常识别技巧:
出现NoSuchMethodError:一般都是jar冲突了
出现ClassNotFoundException:缺少相关的jar了
三步做完后,项目妥妥的跑起来了。
Spring Boot怎么识别web项目
1.spring boot会识别项目是否是web项目,如果识别到事web项目,又没有添加tomcat等容器jar,就抛异常。
2.识别的方式就是看项目是否依赖了servlet-api和spring-web。而我们项目需要spring-web相关如el等功能又不需要tomcat容器,所以可以指定为非web项目。
3.排除掉tomcat后,项目jar体积和运行时内存占用都有很大的改善。
猜你喜欢
1、GitHub 标星 3.2w!史上最全技术人员面试手册!FackBoo发起和总结
2、如何才能成为优秀的架构师?
3、从零开始搭建创业公司后台技术栈
4、程序员一般可以从什么平台接私活?
5、37岁程序员被裁,120天没找到工作,无奈去小公司,结果懵了...
6、滴滴业务中台构建实践,首次曝光
7、不认命,从10年流水线工人,到谷歌上班的程序媛,一位湖南妹子的励志故事
8、15张图看懂瞎忙和高效的区别!
Spring Boot 如何快速改造老项目?原来这么爽相关推荐
- Spring Boot 如何快速改造老项目?
1 前言碎语 博主公司一个项目在开发中使用某些功能的时候,受限于spring低版本的限制,故索性将整个模块升级为spring boot,在这里做个记录,希望能帮助到有相同场景的朋友. 整个改造过程非常 ...
- Spring Boot:快速入门教程
什么是Spring Boot? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人 ...
- Spring Boot的快速入门
Spring Boot的快速入门 1.导入第一个maven项目 自动生成maven项目 2.了解maven项目结构 3.启动服务 和普通maven项目结构是一样的,值得注意的是,启动服务的入口是 ![ ...
- 使用Spring Boot来加速Java web项目的开发
我想,现在企业级的Java web项目应该或多或少都会使用到Spring框架的. 回首我们以前使用Spring框架的时候,我们需要首先在(如果你使用Maven的话)pom文件中增加对相关的的依赖(使用 ...
- 【Spring Boot】使用Spring Boot来搭建Java web项目以及开发过程
[Spring Boot]使用Spring Boot来搭建Java web项目以及开发过程 一.Spring Boot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来 ...
- SpringBoot进击 | 一浅出:Spring Boot简单快速上手书
为了后继的 Spring Cloud 学习和进阶,我们需要先行了解 Spring Boot. 1.前言 1.1 认识 Spring Boot Spring Boot 是由 Pivotal 团队提供的全 ...
- spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃
spring boot:从零开始搭建一个项目 - day 7 springboot devtools热加载+MybatisPlus配置+kisso从入门到放弃 一.springboot devtool ...
- spring boot构建基础版web项目(一)springboot、thymeleaf控制层基础构
原文作者:弥诺R 原文地址:http://www.minuor.com/147852147/article 转载声明:转载请注明原文地址,注意版权维护,谢谢! 写前说明 根据个人在各篇博文中看到的信息 ...
- phython在file同时写入两个_喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了
折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...
- hbuilderx能开发vue吗_学会就能接项目!Vue + Spring Boot 实现全栈商城项目开发
在万物互联时代,所有的品牌都需要一个甚至 N 个线上购物网站!即使是小公司也会选择在外包网站发布需求,帮自己的企业开发网络商城. 对于程序员来说,学会「开发网络商城」,可以实现从普通程序员 - 全栈工 ...
最新文章
- 【ACM】Uva 455
- Highcharts-2.3.2 网页曲线绘制工具 一淘网价格曲线
- tcl脚本学习十一:proc应用 (带默认参数)
- 为自己的网站添加RSS功能(转载)
- rabbitmq+redis在优化秒杀商品接口中的使用实例
- java程序中怎么保证多线程的运行安全_Java线程安全问答(草稿)
- vue 文件转换二进制_Vue利用Blob下载原生二进制数组文件
- 银行存款都有哪些误区,你都有踩坑吗?
- 微软lync 持续服务器,Lync Server 2013 Front-End服务器服务不会启动很长时间
- 拓端tecdat|Python信贷风控模型:梯度提升Adaboost,XGBoost,SGD, GBOOST, SVC,随机森林, KNN预测金融信贷违约支付和模型优化
- 组装电脑配件选择教程
- 怎么在计算机中添加用户账户,使用net user命令在win7电脑中添加账户的步骤
- c# 操作Word总结(四)——书签使用
- HDU2586 How far away ?(LCA模板题)
- 计算机软件实习每日学习打卡(6)20201227
- 06【连词】 Conjunction
- Python高级--逻辑回归、KNN回归比较
- java开源即时通讯软件服务端openfire源码构建
- 《快学Scala》第二章练习题答案+概述
- Seq2seq - End2end