目前Spring Boot已经成为主流的Java Web开发框架,熟练掌握Spring Boot并可以根据业务来定制Spring Boot成为一个Java开发者的必备技巧,可是老是零零碎碎不够系统,因此萌生了从零搭建一个后端脚手架的想法。并把这个过程当中的细节思路和以前的一些文章结合起来展示给你们,但愿可以实实在在帮助学习Spring Boot的同窗,固然能力有限若是有不足之处还请多多指教。mysql
首先,这个定位不是彻底没有接触过Spring Boot的初学者,由于Spring Boot的简单入门并非特别难,找一些其余大佬的入门教程学习一阵就能够很快的入门;而是面向具备Spring Boot的学习经验和不够熟练的同窗们,同时提供一些能够开箱即用的解决方案到实际开发中。web
其实我不太喜欢那种相互依赖整了好几个模块,DAO、Service、Controller各搞一个层,而后层层依赖。对于单体项目来讲这种结构把简单的事情复杂化了,容易致使依赖管理混乱。因此通常的简单项目我都建议采用下面的结构:redis
kono-dependencies是一个依赖版本管理的模块,负责kono-app全部的依赖版本、依赖选型的管理。原则上kono-app全部的依赖都应该来自kono-dependencies并且版本从kono-dependencies继承,这样能作到依赖版本的集中控制,使得技术选型和兼容性获得保证。spring
以Maven为例,kono-dependencies只会包含一个pom.xml,并且打包方式packaging
只能是pom
。全部的依赖都被dependencyManagement
管理。sql
<groupId>cn.felord</groupId> <artifactId>kono-dependencies</artifactId> <version>1.0.0.RELEASE</version> <!--打包方式--> <packaging>pom</packaging> <dependencyManagement> <!--被管理的依赖--> </dependencyManagement>
这里有一个小技巧,咱们把Spring Boot的父依赖加入管理,就等于把项目的Spring Boot全部的官方starter归入了管理:docker
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>${springboot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 其它依赖 --> </dependencies> </dependencyManagement>
固然若是有业务须要能够分更多的模块,可是依赖管理必定要清晰、可控。
版本号的规则也是颇有学问的。这里我选用了最容易理解的方式,也是Spring Boot采用的版本号命名风格。数据库
如下都是Java技术栈特定场景下的经常使用选择:json
在一开始,这里面的一些技术并不会集成进去,随着迭代会在合适的时机加入它们,甚至会加入这里面没有的技术栈。后端
经过从零搭建脚手架的过程您能够按部就班的学到如何整合一些功能到项目中,同时还能看到一些实际开发中才能遇到的一些问题以及解决这些问题的思路。同时若是在这个过程当中您有好的建议和问题也能够和我进行沟通,感谢持续关注,共同提升。缓存
关注公众号:Felordcn 获取更多资讯