一、前言
上一章中,我为设计到的用户模块、文章模块、分类标签等模块进行了数据库设计工作,本章开始就要对设计的个人博客进行代码开发工作了
在项目开发的几个流程中,需求分析,原型设计,数据库设计都已经完成了,本章主要讲解的是项目的初始化,包括了mybatis-plus的代码自动生成器,swagger-ui的api文档功能,使用lombok注解
二、使用gitee仓库
既然是菜鸟为了练手做的博客,深度严重不足的情况下,广度肯定要有,所以采用了gitee作为代码仓库,进行代码管理(虽然毫无软用,都是使用idea内置的git插件)
具体gitee创建信息如图所示,因为也就我自己开发,分支模型只有master,没有其他分支
网络异常,图片无法展示
|
关于开源许可证这个东东,我也不太懂,网上找了一下关于开源许可证的解释,如下
协议 | 简述 |
Apache | 允许他人修改源代码后再闭源,但是必须对每个修改过的文件做版权说明 |
GPL3 | 无论以何种方式修改或者使用代码,都需要开源 |
MIT | 允许他人修改源代码后再闭源,不用对修改过的文件做说明,且二次开发的软件可以使用原作者的名字做营销 |
BSD2/BSD3 | 和上面一条类似,但未经事先书面许可,不得使用版权所有者的姓名或其贡献者的姓名来推广 |
BSL | 和GPL类似,但不需要复制版权信息 |
CCZ | 放弃创作的作品版权权益,并将其奉献给大众,不对代码做任何担保 |
EPL | 与GPL类似,有权使用、修改、复制与发布软件原始版本和修改后版本,但在某些情况下则必须将修改内容一并释出 |
AGPL | GPL拓展,使用在线网络服务的也需要开源 |
GPL2 | 和GPL3相比,如果使用代码作为服务提供,而不分发软件,则不需要开源 |
LGPL | 和GPL相比,LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码 |
Mozilla | 与LGPL类似,但是需要对修改过的源码内容做说明 |
Unlicense | 与CCZ相似,且开放商标和所用的专利授权 |
三、初始化项目
将项目拉到本地,idea打开,新增文件夹(src/main/....)、pom文件等
初始化结束项目结构如下
网络异常,图片无法展示
|
pom文件添加依赖如下:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- aop--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency> <!-- mysql驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- 数据源--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.13</version> </dependency> <!-- lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency> <!-- mybatis-plus代码生成器--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> <!-- 模板引擎--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.28</version> </dependency> <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version> </dependency> <!-- swagger前端页面 --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.7</version> </dependency> </dependencies> 复制代码
启动项目一切正常,over
网络异常,图片无法展示
|
四、使用mybatis-plus代码代码生成器
数据库表名由blogs_ip改为了access_ip,使用代码生成器的时候忽略前缀blogs之后,类名变成了IP, 感觉不太好
FastAutoGenerator.create("url", "username", "password") .globalConfig(builder -> { builder.author("baomidou") // 设置作者 .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .outputDir("D://"); // 指定输出目录 }) .packageConfig(builder -> { builder.parent("com.baomidou.mybatisplus.samples.generator") // 设置父包名 .moduleName("system") // 设置父包模块名 .pathInfo(Collections.singletonMap(OutputFile.xml, "D://")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("t_simple") // 设置需要生成的表名 .addTablePrefix("t_", "c_"); // 设置过滤表前缀 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); 复制代码
我在官方的代码生成器上改了一下,如controller的@RestController注解,实体类上的@Lombok注解,具体如下所示
public static void main(String[] args) { String url = "jdbc:mysql://127.0.0.1/blog?useSSL=false"; String username = "root"; String password = "123456"; String authorName = "NingXuan"; String packName = "com.ningxuan.blog"; FastAutoGenerator.create(url, username, password) .globalConfig(builder -> { builder.author(authorName) // 设置作者 .enableSwagger() // 开启 swagger 模式 .fileOverride() // 覆盖已生成文件 .commentDate("yyyy-MM-dd") // 注释日期 .outputDir("C:\Users\My\Desktop\learn\blog\src\main\java"); // 指定输出目录 }) .packageConfig(builder -> { builder .parent(packName) // 设置父包名 // .moduleName("blog") // 设置父包模块名 .entity("model") // 设置实体类包名 .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "C:\Users\My\Desktop\learn\blog\blog\src\main\resources\mapper")); // 设置mapperXml生成路径 }) .strategyConfig(builder -> { builder.addInclude("blogs_archive", "blogs_article","blogs_article_comment","blogs_article_info","blogs_category","blogs_file", "access_ip","blogs_label","blogs_message","city","friend_link","sys_user") // 设置需要生成的表名 .addTablePrefix("blogs") // 设置过滤表前缀 ; builder.entityBuilder() // 设置实体类 .enableLombok() // 开启lombok模型 .enableTableFieldAnnotation() // 开启生成实体时生成字段注解 .idType(IdType.ASSIGN_ID) // id自动生成,使用雪花算法 ; builder.controllerBuilder() .enableRestStyle(); // 开启生成@RestController 控制器 builder.mapperBuilder() .enableMapperAnnotation(); // 开启mapper注解 }) .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板,默认的是Velocity引擎模板 .execute(); } 复制代码
生成之后的目录结构
网络异常,图片无法展示
|
但是比较难受的是我
五、补充
别的不说,刚拉下来的项目是这个德行也是给我干无语了,多少有点不知所措,看着很不顺眼,缺了好多东西, 我的src呢
网络异常,图片无法展示
|