源碼地址
https://github.com/javanan/slife
slife
spring boot 搭建的一個(gè)企業(yè)級(jí)快速開(kāi)發(fā)腳手架。
技術(shù)棧
- Spring Boot <p>
- MySQL<p>
- Freemark <p>
- SiteMesh <p>
- Shiro <p>
- Bootstrap <p>
- mybatis、mybatisPlus <p>
- redis <p>
- Activiti <p>
編碼約定
系統(tǒng)分為controller、service、dao層。
controller主要負(fù)責(zé)轉(zhuǎn)發(fā)、service主要負(fù)責(zé)業(yè)務(wù)邏輯、dao主要是數(shù)據(jù)庫(kù)的操作。
文件名稱約定
在頁(yè)面文件夾中,按照功能模塊分別建立不同的文件夾存放頁(yè)面,如用戶的頁(yè)面就放在user文件夾中,而角色的就放在role文件夾中。
- 頁(yè)面如果是列表類型的。頁(yè)面的文件名用list.ftl命名。
- 頁(yè)面如果是詳情類型的。頁(yè)面的文件名用detail.ftl命名。
controller、service、dao方法名稱約定
- 如果是增加數(shù)據(jù)操作用insert做前綴。
- 如果是刪除操作用delete做前綴
- 如果是修改操作用update做前綴
- 如果是查詢操作用select做前綴
數(shù)據(jù)庫(kù)讀寫分離
緩存ecache、redis
新建模塊
- new Module
- GroupId --->com.slife
- ArtifactId---> slife-模塊名稱 如 slife-activiti
- Version --> 版本號(hào) 如 1.0SNAPSHOT
- Module-Name--> slife-模塊名稱 如 slife-activiti
- 提交新建模塊
- pom 文件引入
<name>slife-模塊名稱</name>
<dependencies>
<dependency>
<groupId>com.slife</groupId>
<artifactId>slife-common</artifactId>
</dependency>
.
.
.其他的依賴
.
</dependencies>
JDK版本 1.8
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
<compilerArgs>
<arg>-parameters</arg>
</compilerArgs>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
</plugins>
</build>
新建一個(gè)功能模塊
1、創(chuàng)建數(shù)據(jù)庫(kù)
2、創(chuàng)建entity類
3、創(chuàng)建service類
4、創(chuàng)建controller類
5、創(chuàng)建list界面
5.1 到其他list復(fù)制代碼過(guò)
5.2 修改
<script>
var url = "${base}/sys/user/";
</script>
中的 url 為你剛剛創(chuàng)建的 controller的類
@Controller
@RequestMapping(value = "/sys/user")
public class SysUserController extends BaseController {
的 @RequestMapping(value = "/sys/user") 值
5.3 修改搜索條件
目前的搜索條件有
/**
* 等于
*/
public static final String SEARCH_EQ="search_eq_";
/**
* 左模糊
*/
public static final String SEARCH_LLIKE="search_llike_";
/**
* 右模糊
*/
public static final String SEARCH_RLIKE="search_rlike_";
/***
* 全模糊
*/
public static final String SEARCH_LIKE="search_like_";
<input type="text" class="form-filter input-sm _search" name="search_eq_login_name">
只要在 input中 的 name 加入 search_eq_ 前綴 再加數(shù)據(jù)庫(kù)中的字段名稱即可
5.4 修改表格的字段名稱
項(xiàng)目截圖介紹
系統(tǒng)用戶管理
image
image
系統(tǒng)菜單管理
image
image
系統(tǒng)角色管理
RBAC權(quán)限管理模型
image
日志監(jiān)控
系統(tǒng)自定義注解,結(jié)合AOP,監(jiān)控用戶操作行為
image
Spring Boot Admin 監(jiān)控
[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-erd7cAoP-1577440125214)(ya)]
image
Activit工作流
image
API文檔
swaggerUi接口文檔展示
image
數(shù)據(jù)庫(kù)監(jiān)控
使用druid監(jiān)控?cái)?shù)據(jù)庫(kù)健康。本來(lái)這里是三個(gè)數(shù)據(jù)源的,使用aop動(dòng)態(tài)的書(shū)寫切換。沒(méi)上傳到git,需要的同學(xué)可以私我
image
maven構(gòu)建 多模塊開(kāi)發(fā)
根據(jù)不同的業(yè)務(wù),不在不同的業(yè)務(wù)模塊中開(kāi)發(fā),如果基本的用戶、組織等的管理在 sys模塊
日志的業(yè)務(wù)邏輯在 log模塊
image
可插拔式部署
把不同的模塊打包成jar,對(duì)應(yīng)的freemark文件也打包在對(duì)應(yīng)的模塊jar中。實(shí)現(xiàn)了功能模塊的可插拔式部署。
image