实践Springboot+mybatis-plus 搞项目配置 一点心得。参考Java全站小哥的新冠物资管理系统写的此博客。
1.添加依赖
在项目完成之后需要添加相应的依赖,
mybatis-plus-boot-starte:mybatis-plus启动器
mybatis-plus-generator:mybatis-plus代码生成器
springfox-swagger2:一个接口文档,可以方便调试操作
springfox-swagger-ui:接口文档图形化界面
velocity-engine-core:显示接口文档的模板加速引擎,类似于themeleaf模板引擎
lombok:一个插件,方便get和set操作。提前得在idea安装插件
knife4j-spring-boot-starter:优化接口文档的显示界面
mysql:使用mysql进行数据存储
mysql-connector-java:连接数据库的工具吧这样说。
<properties>
<java.version>13</java.version>
<mp.version>3.4.0</mp.version>
<swagger.version>2.7.0</swagger.version>
<velocity.version>2.2</velocity.version>
<mysql-version>8.0.22</mysql-version>
<knife4j.version>2.0.4</knife4j.version>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mp.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mp.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>${mysql.version}</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>${knife4j.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. 配置文件
在projectName.src.main.java.resources下新建application.yml文件,配置端口和数据源和mybatis-plus:
spring:
application:
name: employee
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxxxx?useUnicode=true&characterEncoding=UTF-8&serveTimezone=GMT%2B8
username: root
password: ******
jackson:
date-format: yyyy-mm-dd HH:mm:ss
time-zone: GMT+8
server:
port: 8087
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl
global-config:
db-config:
logic-not-delete-value: 0
logic-delete-value: 1
logic-delete-field: deleted
mapper-locations: classpath*:/mapper/*.xml
type-aliases-package: com.sunset.system.entity
3. mybatis-plus 自动生成代码
CodeGenerator.java
public class CodeGenerator {
public static String scanner(String tip){
Scanner scanner = new Scanner(System.in);
StringBuilder help = new StringBuilder();
help.append("请输入"+tip+":");
System.out.println(help.toString());
if(scanner.hasNext()){
String ipt = scanner.next();
if(StringUtils.isNotBlank(ipt)){
return ipt;
}
}
throw new MybatisPlusException("请输入正确的"+tip+"!");
}
public static void main(String[] args) {
//代码生成器
AutoGenerator mpg = new AutoGenerator();
GlobalConfig gc = new GlobalConfig();
gc.setOutputDir(scanner("请输入你的项目路径") + "/src/main/java");
gc.setAuthor("sunset");
//生成之后是否打开资源管理器
gc.setOpen(false);
gc.setFileOverride(false);//重新生成时是否覆盖文件
gc.setServiceName("%sService");//%s占位符 mp生成Service层代码,默认接口是第一个字母是有
gc.setIdType(IdType.AUTO);//设置主键生成策略,自动增长
gc.setDateType(DateType.ONLY_DATE);//生成Date类型 只能用java.util.date代替
gc.setSwagger2(true); //开启实体属性 Swagger2 注解
mpg.setGlobalConfig(gc);
// 数据源配置
DataSourceConfig dsc = new DataSourceConfig();
dsc.setUrl("jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8");
// dsc.setSchemaName("public");
dsc.setDriverName("com.mysql.cj.jdbc.Driver");
dsc.setUsername("root");
dsc.setPassword("******");
dsc.setDbType(DbType.MYSQL);//使用MySQL数据库
mpg.setDataSource(dsc);
// 包配置
PackageConfig pc = new PackageConfig();
pc.setModuleName(scanner("请输入模块名"));
pc.setParent("com.sunset");
pc.setController("controller");
pc.setService("service");
pc.setServiceImpl("service.impl");
pc.setMapper("mapper");
pc.setEntity("entity");
pc.setXml("mapper");
mpg.setPackageInfo(pc);
// 策略配置
StrategyConfig strategy = new StrategyConfig();
//设置哪些表需要自动生成
strategy.setInclude(scanner("表名,多个英文逗号分割").split(","));
//实体类、列名驼峰命名
strategy.setNaming(NamingStrategy.underline_to_camel);
strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//strategy.setSuperEntityClass("你自己的父类实体,没有就不用设置!");
strategy.setEntityLombokModel(true);//使用简化getter和setter
strategy.setRestControllerStyle(true);//使用controller的API风格 使用restController
//驼峰转连接符
strategy.setControllerMappingHyphenStyle(true);
//strategy.setTablePrefix("tb_");
mpg.setStrategy(strategy);
mpg.execute();
}
}
此时,在主配置类上加上@MapperScan(“com.sunset.system.entity”) 运行程序即可.
再次生成了controller entity mapper service serviceimpl 几个文件夹。 至此大功告成。
下一次熟悉一下swagger的接口文档的技术。