springboot是什么入门
链接:https://www.zhihu.com/question/53729800/answer/138121021
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
最近半年新项目都使用springboot搞起,可以快速做原型,有一些实战经验。
————————————————————————————–
先科普下springboot跟spring framework的关系吧。我是个爱讲故事的程序员~~
spring framework就好比一个大型的电子元件生产公司,它生产的元件性能都很优秀,但是坊间使用它的元件的作坊,拿到手之后还得搞一些电焊,衔接,可能要花个10天半个月最后做成一个家电或者机器人(不管啥了,只是例子)。
有一天这个公司就宣布,我们现在提供了一些功能模块,比如摄像头传感器,扩音器传感器,压力传感器,它们都是统一的usb接口的,只需要插线连接就能使用了。这样是不是大大降低了坊间小作坊的人力物力各种力,5分钟就拼凑出一个机器人了有木有。
看出啥来了吗?各种电子元件就是springframe上面关于其他诸如mq,websocket, zookeeper, redis的整合代码包,没有springboot starter我们还是得自己去调用各种不同的接线头,芯片端口去接线调试,还可能把芯片弄坏,弄烧了。。。
再次总结下,
springboot提供了基于spring 的各种starter(传感器)的快速启动,搭建框架的便利;
spring-boot-starter-xxx 就是上面说的各种传感器,对各种芯片的封装,提供简单统一的调用,配置方式。 你去学会发现只需要加入starter依赖,就能使用默认配置了快速把新功能加入到项目中了。
比如再项目中加入这个依赖:
<!-- 声明使用 Spring Boot 这个‘船坞’ --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.0.0.RC1</version> </parent> <dependencies> <!-- 告诉程序:请在这个‘船坞’上面装一个炫酷的100k钻石显示屏 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-其他想要的吊炸天的传感器</artifactId> </dependency> </dependencies>
如果不够各个starter还能过通过统一的配置方式去配置,调试(tuning),最后发布为一个jar包,利用springboot的机制去加载链接启动各个组建,提供一个完整的服务。
当然不止boot-starters, springboot有四大神器:auto-configuration、starters、cli、actuator,涵盖了配置,链接,统一调用操作,性能监控的完善产品圈,值得学习。
——————————————–分割线,说一些书 ——————————————-
这里整了一个最简单的web应用,HelloWorld看这里 :levinliu/springboot-helloworld 。 其实每次学习新技术新框架,建议先去看她官方提供技术博客,运行她的sample代码。
再说说一些看过的spring资料吧,官方的springboot reference已经讲的很不错了,上面也说了。
有空可以看看源代码(我也在计划中),建议先看一些书,正在使用微信读书看spring源码深度解析,下面的书也是微信读书认真看完了的。
书籍的话,有两本我都看完了的,
第一本是《springboot揭秘:快速构建微服务体系》,这书讲的是关于springboot去快速编写微服务的案例,更侧重于各式各样微服务的实践,侧重于横向扩展,围绕微服务如何去做完事的后期监控,运维的一些介绍。
第二本《深入实践springboot》这本偏向一个完善高性能应用的开发全链路实践,侧重于纵向扩展,比如说做一个完整的web系统,从一个用户管理服务开始拓展,用redis做缓存,介入分布式文件系统,再引入一些springcloud的组件做集群服务发现等,系统多了再做sso。我比较喜欢的一种循序渐进的知识网络剖析方式。
两本书都会对springboot的源码进行介绍分析,还行,覆盖了几个核心的接口。
你懂的,源码解析有个度,别人书里说多了,把书质量拉下去了,说少了表达不出来。
最后可能也得自己去啃了,不然听别人说的总是没有那个感觉。