springboot是用来改变spring等框架使用过程中的哪些问题的呢?
spring的优缺点:
优点:
spring是java企业版(J2EE)的轻量级替代名。无需开发重量级的EJB,spring为企业级java开发提供了一种相对简单的方法,通过依赖注入(DI)与面向切面编程(AOP)的方式,用简单的Java对象实现了EJB的功能。
缺点:
虽然Spring的组件代码是轻量级的,但是他的配置确实重量级的。一开始,Spring用XML配置,而且是很多的XML配置。Spring2.5引入了基于注解扫描的方式,这消除了大量针对应用程序本身组件的显示XML配置。Spring3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代理XML。所以这些配置都代表了开发时候的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维的切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring使用,但是与此同时他要求的回报也不少。
除此之外,项目的依赖管理也是一件非常耗时耗力的事情。在环境搭建时,需要分析要导入的包的坐标,而且需要分析导入与之有依赖关系的其他库的坐标,一旦发生了错误,将会导致一系列不兼容问题的的连锁反应,严重阻碍项目的进度。
Springboot的解决方案:
Springboot对上述Spring的缺点进行了改善与优化,主要是基于习惯由于配置的思想,可以将开发人员从配置问题中解脱出来,全身心的投入到逻辑代码中,从而大大的提升开发的效率,从而缩短项目周期。
Springboot解决上述问题主要使用了两大特性:
起步依赖:
起步依赖本质是依赖于Maven的项目对象模型,进行了依赖的传递依赖从而解决依赖组合问题。简单的说就是需要的提供一些模块的整合POM为一个新的模块,提供给开发者使用。
自动配置:
Springboot的自动配置主要是指启动时候回自动将一些配置类的bean注册到ioc容器中,我们需要的时候可以直接使用从容器中获取(@Autowired、@Resorce)。
自动的表现主要是我们只需要引入我们想要功能的包,而相关的配置需要管,Springboot回自动的按照习惯为我们配置好这些bean。
所以使用Springboot可以简单快捷方便的搭建项目,对主流框架进行无配置的集成,极大的提高了开发部署效率!
Springboot热部署配置:
热部署:
在开发过程中,往往会对一段业务代码不断的修改测试,在修改之后往往需要重启服务,有些服务需要加载很久才能成功的启动,这种不必要的重复操作极大的降低了程序开发效率。所以Springboot框架专门提供了进行热部署的依赖启动器,用于进行项目的热部署,而无需手动启动项目。
热部署的配置:
1.添加依赖
在项目的pom.xml中添加spring-boot-devtools热部署依赖启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
由于使用的是IDEA开发工具,添加热部署依赖后可能不会有什么效果,因为还需要配置IDEA开发者工具支撑热部署功能。
2.IDEA热部署配置
选择IDEA工具页面【File】->【Settings】选项,并打开Compiler面板设置页面
在项目中任意页面使用组合快捷键"Ctrl+Shift+Alt+/"打开Maintenance选项框,并选中打开Registry页面,如下图:
列表中找到"compiler.automake.allow.when.app.running",将该选项勾选应用于指定IDEA在程序运行中自动编译,最后点击【Close】按钮完成设置
3.测试热部署
启动应用并访问:
为了测试热部署是否有效,接下来在不关闭当前服务的情况下,将Controller中的返回结果修改并保存,查看控制台信息会发现项目能够自动构建与编译,说明热部署生效!
再次浏览器访问:
表明项目热部署配置成功!