引用
引用某位技术大牛推荐的技术成长方法:1)我们要经常关注技术网站,如csdn,iteye,infoq等;
2)要努力提高英语水平,学习研究第一手的技术资料;
3)对新技术要保持饥饿和敏感,一旦有新技术要主动的了解和学习;
4)学会对技术进行高层次的总结和理解,在相似的新技术出现时可以类比学习快速上手;
5)善于使用搜索引擎检索技术和问题,因为技术资料英文的较多,推荐使用谷歌搜索所有问题、Github检索示例代码、StackOverflow检索报错信息。
6)善于利用成熟的第三方库,当使用一项新技术的时候,不要想着自己一点点啃,要善于利用已经成熟的第三方库,不要重复造轮子;
介绍
回归主题,Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot的目标不在于为已解决的问题域提供新的解决方案,而是为平台带来另一种开发体验,从而简化对这些已有技术的使用。下图显示 spring Boot 在 Spring 生态中的位置:
Spring Boot学习要求
- Maven/Gradle
- Git
- Docker
- Docker Compose
对于Git、Docker容器技术,其与Spring Boot的关联度非常的高,大部分的应用都是托管在GitHub上,然后,因为Spring Boot开发的应用大多服务与微服务架构,而这种架构通常依托与Docker实现快速部署和compose一键部署,所以了解和学习他们也变得非常有必要。至于后面要学习的Docker部署集群管理工具Mesos或者Kubernetes等,其实也是要掌握的,这里推荐coding(码市)网站,上面有很多技术博客讲解实际开发者使用体验和技巧。
考虑这么国外的资源,国内下载时好时慢,所以推荐修改配置指向国内资源,如Maven库可以用开源中国的(连接aliyun和jboss等资源的settings.xml文件可以在我上传资源下载),还有docker的所有镜像在DaoCloud下,他们同时提供了一个Docker Hub加速器工具,可以永久修改docker默认镜像default的资源下载地址(http://get.daocloud.io),而且DaoCloud实时更新官网资源,承诺永久免费,所以广告就打这么多,推荐个人使用。
Spring Boot的特性
1)快速构建独立Spring应用程序
2)嵌入式Tomcat,Jetty容器,无需部署WAR包
3)简化Maven及Gradle配置
4)尽可能的自动化配置Spring,无代码生成和xml配置
5)直接植入产品环境下的实用功能,比如度量指标、健康检查及扩展配置等
6)对主流开发框架和工具链做无配置集成
Spring Boot优缺点
优点:
1)解决配置繁琐的问题,最大化的实现convention over configuration(约定大于配置);
2)springboot 要解决的问题, 精简配置是一方面, 另外一方面是非常方便的让spring生态圈和其他工具链整合(比如redis, email, elecsearch)
3)有Pivotal和Netflix这两个干爹罩着, 个人认为SpringBoot(由Pivotal团队提供)前途一片光明(国内的一些大厂其实早就再用了)
缺点:
1)因为刚出不久,文档略少,加上对Spring Boot的auto configuration loading等机制的封装, 给人感觉入门容易,但是如果没有完整学习spring的体系,碰到问题就一脸懵逼。据我所知,很多玩spring boot的人连怎么打开底层包的log都不知道,怎么可能能发现问题呢?比如很多人会碰到启动时不知道框架哪里抽风,会导致系统无法启动,报的错都很神奇,搜完百度和谷歌和stackflow都没解决方案。(后来有人说@DependsOn注解就能搞定,没试过不清楚行不行);
2)版本迭代速度太快(最近太火了), 一些模块改动很大, 比如 springboot-test的1.3.5 vs 1.4