# 新建项目
# 开始
使用您熟悉的 IDE 工具,新建一个 Spring Boot 的基础项目。
注意: 项目java 版本1.8,编码:UTF-8,Maven编译版本:1.8
# 引入依赖
在本例中,引入的依赖如下:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- 引入工具包-->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.4.7</version>
</dependency>
<!-- 引入 api 文档便于调试-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>2.0.7</version>
</dependency>
<!-- 对象转换-->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.1.Final</version>
</dependency>
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.1.Final</version>
</dependency>
<!-- heimdall spring boot starter -->
<dependency>
<groupId>com.github.luterc</groupId>
<artifactId>heimdall-starter-spring-boot</artifactId>
<version>1.0.4</version>
</dependency>
<!-- OR heimdall caffeine 缓存实现 -->
<dependency>
<groupId>com.github.luterc</groupId>
<artifactId>heimdall-cache-caffeine</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
其中:
- hutool: 工具合集,密码加解密用到,必选
- mapstruct: 实体类转换,必选
- knife4j : api 文档,引入主要是为了便于测试,可选。
- heimdall-starter-spring-boot: Heidamll 权限管理框架 Starter,必选
- heimdall-cache-caffeine :Heimdall 权限管理框架 caffeine缓存实现,必选。
# 项目结构规划
- base : 全局公共类,如 mapstruct转换接口定义
- config : 全局配置文件,如全局异常,MVC 配置等。
- module:业务模块,系统管理模块、宠物商店模块的具体实现
- utils : 工具类
# 配置
- 建立一个空的数据库
- 修改配置文件中数据库部分信息
参考:
server:
#服务端口
port: 10000
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://1.1.1.1:0000/heimdall_petstore_db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=CTT
username: foo
password: bar
type: com.zaxxer.hikari.HikariDataSource
hikari:
minimum-idle: 5
maximum-pool-size: 20
auto-commit: true
idle-timeout: 60000
pool-name: HeimdallDataPool
max-lifetime: 1800000
connection-timeout: 60000
connection-test-query: SELECT 1
#jpa配置
jpa:
#注册:OpenEntityManagerInViewInterceptor,view层也会打开事务,也就是可以获取到hibernate session
open-in-view: true
#数据库平台和方言配置
database: mysql #mysql
properties:
hibernate:
#支持无事务情况下的懒加载
enable_lazy_load_no_trans: false
# context
current_session_context_class: org.springframework.orm.hibernate5.SpringSessionContext
#显示执行汇总信息
generate_statistics: false
# 输出所有SQL语句到控制台
show_sql: false
# 在log和console中打印出更格式化的SQL
format_sql: false
# 在SQL中生成有助于调试的注释信息
use_sql_comments: false
# 强制Hibernate按照被更新数据的主键,为SQL更新排序
order_updates: true
hibernate:
# create, create-drop, update, validate
# 作用主要用于:自动创建、更新、验证数据库表结构
ddl-auto: update
logging:
pattern:
console: '%boldWhite(%d) | %green([%t]) | [%highlight(%p)] %highlight(%c{1.}.%M\(%L\)): %highlight(%msg%n)'
file: '%d [%t] %p %c{1.}.%M\(%L\) %m%n'
file:
name: logs/heimdall-petstore.log
level:
root: info
# api 文档配置
knife4j:
enable: true
production: false
# 启动
配置完毕后,由于使用了 JPA ,需要在启动类上加入事务管理注解,如下所示:
/**
* The type Heimdall petstore application.
*
* @author Luter
*/
@SpringBootApplication
//启用事务管理
@EnableTransactionManagement
public class HeimdallPetstoreApplication {
public static void main(String[] args) {
SpringApplication.run(HeimdallPetstoreApplication.class, args);
}
}
配置完毕后,启动应用。此时,一个空的 SpringBoot 项目已经建立完毕,下一章开始,我们将实现基础的 RBAC 管理功能。