我们有必要花时间了解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吗?的主要内容,如果未能解决你的问题,请参考以下文章