作者:hsmcomputer
链接:https://www.zhihu.com/question/303235503/answer/2211568375
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
 

先说结论。

1 是否有JSP和Servlet基础,对学spring boot帮助不大。

2 没ssh和ssm基础,不影响学spring boot,反过来说,如果有ssh和ssm基础,可能对会学spring boot有一定帮助,但帮助不大。

3 学spring boot需要有哪些基础呢?基本的java语法基础,这方面包括面向对象,集合,数据库,异常处理等,需要有基本的sql技能,这方面包括增删改查的sql技能和索引等。

4 Spring本身的技能,比如IOC,AOP等,可以在学spring boot时学,无需额外学。

再解释下jsp,servlet,ssh和ssm和spring boot的关系。

jsp是由前端代码和向后端的请求组成,而servlet承担把请求定位到具体业务模块上。所以从功能点上看,jsp+servlet相当于spring boot中的控制器,它们在理念上很相似,但语法上完全不同。所以学了jsp+servlet,充其量能帮助了解spring boot框架的工作流程,其它的帮助并不大。

ssh和ssm框架和spring boot框架一样,实现了分层,即分为控制层,业务层和数据访问层,而且控制层中定义对外服务的方法,ssm和spring boot做法很相似。所以学了ssh和ssm对学spring boot有一定帮助,不过话说回来,ssm和spring boot中相似的点很简单,哪怕没ssm基础,从头开始学spring boot也不难。

再结合公司里对不同级别的spring boot程序员的要求,说下spring boot该怎么学,怎么进阶?

1 对于初级程序员,比如是刚毕业或刚通过培训班入行的程序员来说,要求就是会做增删改查,当项目经理接到若干需求,然后分派,比如甲做订单模块的增删改查,乙做风控模块的,等等。在这个过程中,一般是可以参考现有的代码。

对于这个阶段,spring boot程序员需要有哪些技能?会在控制器类中,用url格式对外提供服务,会用jpa+orm,在控制器或业务类中用IOC引入对象,会开发和数据库相关的逻辑,其实会这些技能就足够了,在做业务的时候,无非再用些java集合,异常处理,面向对象等技能。

在这个阶段,其实对spring boot本身要求并不多,更多的是要求程序员细心点别出bug,而且需要程序员多和测试,产品和其它team的人多打交道。所以大多数入行的程序员,哪怕是非计算机专业的经培训班入门的程序员,都能做好这方面的工作。

回到题目本身,不会spring其它,做到这种程度,用spring boot挣钱,不难。

2 再说对高级开发的要求,在一个项目组里,应该有不少初级开发,但也会有若干高级开发撑场面。对高级开发而言,公司的要求会是会解决spring boot框架层面相关的问题,比如引入logback写日志,设计并确定基于restful框架的api等。

对于高级开发而言,需要会spring boot相关组件,比如spring security,junit,整合jenkis部署发布,会用aop开发通用的技能,用开发复杂的sql需求。其实如果高级开发能再掌握分布式组件处理高并发的技能,那更好了,但分布式高并发,不是对高级开发的必然要求。

在实际项目中,凡是不和分布式组件有关,但和spring boot框架有关的技能,一般都是高级开发解决的,初级开发升级到高级开发不难,用项目资历熬个两三年就可以达到,毕竟spring boot相关的组件和框架大多都是语法问题。

再回到问题本身,不学spring boot其它,直接学spring boot,一般不能达到高级开发的水平,spring boot高级开发=初级的增删改查+junit,swagger,restful等spring boot单机版的组件。

3 再往上就是架构师了。在小公司里,往往技术总监会负责所有项目的架构,大公司里往往一个项目组配备一个架构师。

Spring Boot相关的架构师需要掌握哪些技能?和单机版相对,spring boot架构师需要掌握spring boot整合分布式组件应对高并发的相关技能。

比如会在数据库层面整合redis缓存和mycat分库组件提升数据库的性能,会用zookeeper+nginx实现组件分布式部署,用消息中间件处理异步消息和消峰,会用dubbo+zookeeper实现远端调用。

在大公司里,高级开发升级到架构师比较容易,因为大公司的项目一般会用到相关组件,但是在一些小公司的项目里,由于只需要用增删改查,无需应对高并发,所以程序员没有机会接触到分布式组件。无法接触,那么学习提升就无从说起了,这也是大多数小厂程序员技术停滞的一个原因。

或者说,不少程序员能知道有架构师这个职位,也知道架构师的职责,但具体架构师要掌握哪些技能,这些技能该怎么搭建环境怎么开发怎么维护,不少程序员就不知道了。

                                                                        需要更多教程,微信扫码即可

                                                                                

                                                                                         👆👆👆

                                                        别忘了扫码领资料哦【高清Java学习路线图】

                                                                     和【全套学习视频及配套资料】
 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐