springboot开发初体验-《springboot实战派》读书笔记

有很多年没有做项目开发工作了,最近因为单位需要,我买了本龙中华老师的《sringboot实战派》充充电,这里对自己这几天学到的东西做个总结。

一、开发环境搭建

因为自己的使用习惯,我选了银河麒麟v10+jdk17+sts4+eclipse+maven做为开发平台。开发环境的搭建,很重要的一点是各软件版本的选择,不开发老系统的情况下,最好选择用最新稳定发行版,这样能避免各个版本互相不支持的情况,比如maven3.6支持不了jdk17,jdk1.8不能支持sts4,sts3才有jdk1.8支持。最后选择springboot官网发布的springboot tool suite4(就是安装了sts4插件的eclipse IDE)IDE,JDK17,maven3.9.5。开始用麒麟系统自带的eclipse4.2安装sts4插件,一直有各种问题,market place下载插件失败,离线包安装不了,最后直接用springboot官方发行的带sts4的eclipse4.29版本,对于很久不做java开发的我来说简单方便。

注意事项:maven做为依赖包主要的下载工具一定要用国内镜像做为仓库,我这里用的是ali的镜像仓库。项目开发、编译、打包都要用到maven依赖仓库,修改为国内的仓库可以极大的提高开发效率。

  • springboot项目开发的总体结构

现在springboot的开发和我很早以前用spring做开发有了很大的不同。

  1. 原有spring开发的xml配置文件已经取消,所有的spring配置都被annotation注释所取代。比如原来把bean注册到ioc容器需要把bean配置到xml文件中,而现在只需要在要注册的bean上加上@bean标签注释就行了。这种开发方式去掉了让很多开发人员头疼的xml配置文件,简化了开发,提高了源码的可读性,减少了开发人员开发代码的工作量。
  2. 原有的mvc三层开发结构也有了很大的变化。Control层原来用servlet管理control对象,现在只需要用rest风格的annotation标签注释就行了,@RestController标签指这个对象为control对象,@RequestMapping("/hello")标签指/hello这个url访问时使用这个control对象的被requestmapping标记的方法,并用json协议返回内容。DAO层开发也被repository层取代,以mybatis为例(国内大多用mybatis,国内社区交流多,遇坑容易找到解决方法),只要在数据库crud的接口类上加上@Mapper标签,crud方法声明上加上@Insert、@Delete、@Update、@Select标签就能把原有DAO的工作交给springboot容器管理,简单明了,不再需要mybatis的xml配置,也不需要DAO实现类。
  3. 原有的view使用jsp、js、css、html等技术做为前端实现技术,现在也被实现前后端分离的vue等技术所替代。而用vue等前端技术开发的项目编译后生成的前端页面(包含html,js,css等)可以放入sprintboot项目中一起打包,也可以单独部署在nginx等代理服务器中。前后端分离开发中,只要用restful风格定义好前后端访问和返回的http消息就行了(rest风格有一系列规范,一般只要定义好前后端访问的url就行了)。
  • 第三方工具做为标准配置

现在springboot开发,第三方工具redis,rabbitmq已经成为一般项目必须加入的组件。

1、缓存服务器redis

    为了解决数据库查询耗时久等问题,项目都会引入redis。redis做为缓存服务器降低数据源压力,提高响应速度,这在很大程度提高了web后端项目的使用体验,也是redis最重要的应用场景。redis和springboot整合很简单,首先下载redis,启动redis服务器。然后在springboot项目中的application.properties或application.yml中配置redis连接相关信息。最后在pom.xml中添加spring-boot-starter-data-redis依赖项就可以在项目中使用缓存服务器了。(小Tips:pom.xml里的依赖项不用记,可以在maven官网https://mvnrepository.com上面查询)

2、rabbitmq消息队列

rabbitmq是为了解决高并发,应用系统解耦和提升响应速度问题。

流量削峰:解决高并发问题:当有大量系统请求时,系统会把所有请求先放入消息队列中,服务端每次处理业务先从消息队列获取,从而实现流量削峰,解决高并发问题。

应用系统解耦:当我们有多个子系统时,系统会把请求先放入消息队列中,各个子系统会从消息队列中取到自己的请求,从而系统间耦合调用的问题会减少,任何一个子系统出现故障都不会影响用户使用系统,子系统故障恢复后,会继续处理消息,提升系统可用性。

提升响应速度:可以使用消息队列异步请求的方式,将请求信息放入消息队列,直接返回客户端响应,后端监听队列自行处理,提高响应速度,提升用户体验。

rabbitmq和springboot整合也很简单,下载安装启动rabbitmq服务器,添加配置文件连接信息,增加spring-boot-starter-amqp依赖项,就可以在项目里使用rabbitmq了。

最后,体验完springboot最大的感受是开发简单了很多,原来麻烦的配置文件和代码都被springboot的starter工具包封装成annotation标签,只要加上标签就解决了。整个web项目开发过程需要用到的东西几乎都能在starter工具包里找到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三明魏庆平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值