我们有必要花时间了解spring boot吗?

Posted 不去天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我们有必要花时间了解spring boot吗?相关的知识,希望对你有一定的参考价值。

spring-cloud其他文章:
spring boot自动化配置原理
spring boot集成ActiveMQ
spring-cloud中eureka进行服务治理

spring已经足够好了

现在来看,spring框架真的太好了,任何一个java开发用过之后都会像上瘾一样,爱不释手。会在遇到新问题的时候,或者找到某一个方法的时候,都会去看一下spring是不是已经有同类型的支持了。

如果有的话,我会毅然决然的选择spring。不是武断,是自打spring诞生以来,他给人们的惊喜太多,给人们的信赖感、稳定感太多。打心底里的信服,他们能做到的一定是一个不错的选择。

想想在没有spring之前,我们都是怎么做的吧!

对于一个经验不怎么丰富的开发者,总是在网络上搜索各种可能的方法,尝试,尝试,再尝试,可能经过几天的焦灼和痛苦之后,终于找到了某种方法实现某种功能。

就算是对于开发老鸟,可能某些问题,已经知道解决方法,但是却要不断忍受什么都要自己写,什么都要写很多重复步骤的状况。

比如数据库查询,使用jdbc需要5个步骤,其中我们最需要的是处理结果的步骤,需要自己关闭数据库连接,需要处理事务的开启、异常回滚。有了spring之后,就简单了,直接集成ORM框架,数据库结果自动映射成对象实例,连接管理、事务管理、查询结果处理都不用操心了。

比如缓存需要写先查询缓存,不存在时再查询接口这样的逻辑。有了spring之后,可以直接@Cacheable注解或者xml配置就可以做到了。

比如定时任务,最初有了spring之后,可以直接@Scheduled注解或者xml配置一下就完成了。

可以举的例子还有很多,spring的每一个扩展包,都是一份相关技术知识的打包奉送。spring真正强大,也是强大在开放以及在此基础上实现的各种各样的扩展包。

spring就是一份浓缩的智慧的结晶,是成百上千的优秀程序员的智慧结晶。它让java世界的企业开发变得平易近人,变得轻松易得。

php、python们还是看不起java

spring已经这么强大了,强大到所有的java程序员、java系统几乎都离不开的地步了。为什么在php、python们看来java还是不如他们好呢?

php、python们的理由最多见的有两个,我们也不得不认同。

一个是spring搭个企业级服务必须依赖一个容器,比如weblogic、tomcat、jetty、netty这些。还要配置web.xml、servlet.xml、bean.xml这些东西。

另外一个是类库兼容的问题,由于java的开源特性,以及没有一个统一的版本兼容管理。一旦想着升级spring类库或者其他关键类库,那么与之关联的类库就需要更新,再与之关联的类库就出现了不兼容,进而也需要更新。更新的同时,又可能免不了的需要修改几个deprecated的类。

我们的java能不能更好了呢?企业开发能不能再简单一点?能不能再敏捷一点?

什么是spring boot

spring的追求一定是大道至简,让java的开发变得更加简单、容易。spring boot就是朝着这一追求更近了一步的天使,一个在spring基础上的一整套实现。

最初,对spring boot没有太多的好感,觉得它只不过是把java企业级应用必须用的servlet容器给干掉了而已。觉得它做的只是解决了第一个被诟病的问题而已。

进一步接触,才有所感悟,原来spring boot是这么强大的一个东西。像boot这个名字和它的图标一样,就像是一台电脑的启动按钮,当你start之后,所有你需要的东西都准别好了。你需要做的,就是尽情享受现代科技的美妙。

spring boot最最核心和强大的地方是它的AutoConfiguration和ParentPom。

ParentPom里面提供了java企业级开发绝大多数类库的兼容版本版本号。需要升级spring,那么升级parentPom好了,不兼容的类库统统say byebye。当然了,某些deprecated的类还是需要自己去更换的。

AutoConfiguration能够自动的按照工程的类型,以及引入的jar包来配置功能用到的所有东西。比如web工程,需要设置的那些xml,orm需要设置的DataResource、TransactionManager这些都已经自动配置好了。

如果,自动配置不是你想要的,或者你就是想用特别的配置。spring boot也提供了可配置点,来满足特别的你。你可以把特别的配置卸载application.properties里面,spring boot会以这里的配置为准(优先级高)。

有了spring boot之后,能简单到什么程度呢?要实现一个接口,只需要简单两步:1.创建spring boot项目;2.创建一个普通类,盖上@RestController注解和@RequestMapping注解。

就是这么简单,就是这么炫酷。然而,这还不是spring boot的全部。

它还为生产环境提供了一组管理接口,比如服务健康检查,服务各种维度状态查看。不论是普通的企业服务,还是更灵活多变的云服务,都已经提供了完美的融合以及简化,简直不能太省心。

spring cloud必须跨过的门槛

spring cloud整体是基于spring boot的,spring cloud实质上是把微服务常用的服务治理、消息总线、服务监控、配置中心、容错、网关等选择性的使用spring boot包装起来,提供统一的使用方式。

有了这些用spring boot打包好的中间件、服务组件,我们就可以很快的构建自己的微服务了,而且五脏俱全。

既然boot是cloud的基础,那么,boot自然是必须不可的了。

怎么从零开始熟悉spring boot

spring boot入门也相对简单,spring boot提供了全面的在线文档,也有一些中文的教材可以参考。

所谓万事开头难,难就难在不知道怎么开始。计算机语言和类库的开始如出一辙,都是从一个Hello World例子开始的。

spring boot创建第一个项目可以通过:https://start.spring.io/页面直接创建工程,然后下载到本地,eclipse打开即可。

也可以在spring tool suit中使用New—> Spring Starter Project
或者IntelliJ IDEA中创建Spring Initializer项目。

要了解更多,也可以参考汪云飞写的《Java EE开发的颠覆者 Spring Boot 实战》一书。

用惯了eclipse怎么快速的创建spring boot工程

书中没有说到eclipse怎么创建spring boot项目,用惯了eclipse,受尽eclipse折磨,但又不愿因改换门庭的你该怎么办?

eclipse需要安装spring tool suit插件,安装插件之后的创建就和spring tool suit一样了。

要安装sts插件也不是特别容易,笔者没有尝试离线安装的方式,而是采用的eclipse marketplace的方式安装。

中间有一个jar下载不到,多次尝试之后,打开了shadow socks全局代理才下载成功了。

OK,入了门接下来就可以尽情和spring boot谈情说爱啦。

以上是关于我们有必要花时间了解spring boot吗?的主要内容,如果未能解决你的问题,请参考以下文章

spring boot集成ActiveMQ

真的有必要将 Hystrix 与反应式 Spring Boot 2 应用程序一起使用吗?

Spring Boot整合Vue并实现前后端贯穿调用

Spring Boot初步认识

spring-cloud中eureka进行服务治理

Spring Boot节省了配置吗?