一个30岁老男人的java转行历程<8>
这次就不聊工作上的事了,毕竟天天都是些增删改查,也么的撒子聊,就聊聊最近2周我的一个自学情况.
我是一直想系统看下关于SpringBoot之类的东西,刚好有天上网看见网友推荐《深入浅出SpringBoot》这本书,于是就花了整整2周通读了一遍pdf文档,讲真,400多页的技术类书,这是我这辈子来第一次耐心下来读完了,关键是还看进去了,自我膨胀下哈哈.
下面就简单谈谈自己的看法,我是觉得,如果自己在没有做过相关项目之前看这本书的话,可能会很吃力,因为没用应用场景啊,如果有经历的话那真的可以说是其事半功倍的效果,因为有的参考比对,理解相对容易,还有一个问题就是真实的公司架构无论在配置还是写法上来讲其实跟书上差距很大,1个本身是项目集成多,书上总有遗漏的地方,还有一个问题是实际项目在配置跟写法上要比书上灵活很多,不过好在通用知识点不会变,就是重写排列组合了,也么啥.
第一、二章其实内容不多,主要就是如何搭建一个简单的SpringBoot项目,还有它配置文件的加载顺序以及为什么只用配相关的starter就能启动项目而不用像在ssm那时候一样配很多个jar.
第三章主要讲IOC容器相关的内容,深入浅出了一些相关概念,如何加载bean,如何依赖注入,bean初始化的时候都干了哪些事,bean的生命周期,如何用.propertie文件给相关pojo注入值,bean的作用域,还有el表达式相关东西.第一次看这章的时候么有仔细看,导致在看加载bean的时候有一个疑惑,书上说Spring在启动的时候会在@ComponentScan扫描的类路径下扫描那些标注了有@Comomponent,@Service,@Contorller注解类并加载到IOC容器中,但我纵观我们公司项目么见到有这个标签啊,那它是怎么加载bean的,看第二遍的时候才发现,原来@SpringBootApplication这个源码里面,已经默认配置了那个标签,还是挺尴尬的,这东西读一遍根本就不够,看来得么事就翻翻.
第四章就是aop相关概念,其实我记得我上培训班那会对这个以及后面要说的事务还有多线程简直不要太厌恶,但是真的等到接触过类似的项目时,在结合着书来总结,其实并么有说很难理解,简直轻松多了.也都是些相关概念,重点是AOP的开发详解,我觉得有2个感念比较拗口,一个是织入,1个是通知,其实理解了也就么啥,所谓的织入其实就是本来这方法只有一个记录的功能,结果你现在要在这个方法执行前后调用记录日志,事物管理的功能,那你就把它织入到系统流程中,还有所谓通知就是方法增强,方法执行前干什么,执行后干什么类似这种,我是这么理解的,不晓得对不对,不过这样确实增加了我的印象.
第五章是关于数据库的一些东西,如何配置,分别用了JDBCTemplate,JPA,mybatis.说到mybatis我突然想起来,刚开始在公司用分页插件写分页的时候我就是怎么都搞不明白为啥给方法里面传个Page对象就能自动分页,后来搞明白了,Mybatis的分页插件底层原来是个拦截器,SpringMVC会在每个方法执行之前对方法进行拦截,看参数里面是不是不包涵了一个page对象,如果有的话,就拦截它的原始sql,并在最外层包装一本分页sql,然后在执行dao层方法
第六章是数据库事物处理.SpingBoot是如何进行事物管理的,本质也是用了AOP的相关手段.还有就是事物的一些基本概念,对啦,还有一个比较重要的东西,就是事物的传播行为,听着名字挺高大上的,其实总结下来也挺好理解.就是事物在方法间的传播,比方A方法有事物,它里面调用了b方法也有事物,在不同的传播行为下,到底回滚哪个,还是都回滚.
第七章第八章系统说了下Redis与MongoDB,这2章我是大体读了下,没有特别深入看,因为前者我们公司用的浅就是配个注解然后取值,后者压根也么用,我想着我就算仔细看了后面也肯定就忘了,所以等用的时候在好好看.
第九章第10章真得仔细看,都是讲springMVC方面的东西,特别是了解下SpringMVC的初始化流程真的对理解代码来说简直不要太爽,特别是在想写一些自定义的拦截器功能的话能很快上手,还有它的传参方式,参数的转换规则,数据验证等等以前SSM的一些东西也都么变甚至很拓展了不少,看这节,无论是当工具书来说还是理解代码都不错.
第十一章主讲现阶段流程的rest风格.看完了后发觉其实它就是一种风格,并不是啥技术,总结下来也么啥,之前写代码么有用rest风格,控制器层全是@RequestMapping这种写法,前台js发的ajax请求不是get便是post,换了种风格后,就是页面的5个动作对应后台不同的@*mapping,在就是url写法意义的不同
第十二章讲了SpringSecurity,就是权限安全之类的,因为我之前研究过shiro,大体看完后跟shiro其实大同小异
第13,14,16章我是通读了下,么有特别认真咬文嚼字的看,一个是有些就是些功能,拿来即用那种,还有像WebFlux这种响应框架,哪怕在认真看了后面也会忘,目前没有应用环境,就当先了解下,有个大体印象,毕竟这本pdf我也没准备只看1.2遍,当然是有空就翻翻了
第15章我是重点读了,通过一个抢购商品实例主要讲了3种方式去应对超发现象,分别是悲观锁,乐观锁以及redis实现,3种方式下的性能对比以及优缺点,重点是我又学会了一招如何自己给自己搭建简单的高并发场景.
第17章是SpringCloud,也就是微服务分布式方面的,我大体扫了下,对网络的基本功还是很有要求的,特别是各种专业术语协议之类的,所以我接下来2周主要是补补网络基础,刚好我做测试的老姐前2周在极客时间上买了本关于网络协议的基础教程,我看了几章,发现挺通俗易懂的,就先读读,回过头来在杀完这章,看后面能不能自己搭建一个简单的分布式项目,嘿嘿,有点挑战啊.
好了,今天就写这么多,看完那本网络基础后在来分享,希望我千万别被安逸的环境给打败啊哈哈哈.