链接:https://www.zhihu.com/question/39483566/answer/246333825
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
做微服务快3年了,目前用的是spring boot,spring cloud 全家桶。
刚开始在公司推广时,阻力还是非常大,其他部门热衷dubbo,但是现在趋势已经很明朗了,spring将会一统江湖。他们部门现在开始重写代码,也用spring全家桶。
注解代替xml配置是一种趋势,这从servlet3.0支持注解,也能看出来。
spring boot用的所有东西,包括executable war, devtools,都是已有的成熟技术,但是它选择了最合适的方式,集合在一起。
就像iphone一样,触屏技术,指纹识别,脸部识别,它都不是原创,但它用了,就能快速推广。
举个例子
1 spring boot默认使用的是logback,可能很多人习惯了用log4j,不理解这一点。
logback和log4j的开发者是一个人,logback相当于log4j 2.0,它解决了log4j一个难以解决的问题,
根据profile环境,自动切换日志级别(DEBUG, INFO, WARN)。
我在dev测试环境,用DEBUG级别日志。prod生产环境用的WARN日志。
2 spring boot 默认对liquibase进行了配置, 初次启动会检测liquibase的配置文件,配置错误会启动失败。
很多人不知道什么是liquibase,这是一个好东西,它解决了数据库版本管理的问题。
很多年前的数据库变更,需要准备脚本,人工记录日志。liquibase在数据库自动记录版本号,还可以容易的回退版本,这在人工时代是很难的。
3 spring boot对自定义配置非常友好,可以配置在application.yml,或者Config类。spring boot的整体思想是,有自定义的,自定义优先,否则走自动的默认配置。
4 spring boot官方提供的sample都非常简洁易用,实际上我多数时候都直接跑它的sample,不理解的去看文档。像iphone一样傻瓜易用,这是非常难得的。