博客项目(4、初始化)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 博客项目(4、初始化)

一、前言

上一章中,我为设计到的用户模块、文章模块、分类标签等模块进行了数据库设计工作,本章开始就要对设计的个人博客进行代码开发工作了

在项目开发的几个流程中,需求分析,原型设计,数据库设计都已经完成了,本章主要讲解的是项目的初始化,包括了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相似,且开放商标和所用的专利授权

gitee项目地址

三、初始化项目

将项目拉到本地,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, 感觉不太好

mybatis-plus官网

mybatis-plus官方代码生成器

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();
    }
复制代码

mybatis-plus代码生成器配置

生成之后的目录结构

网络异常,图片无法展示
|

但是比较难受的是我

五、补充

别的不说,刚拉下来的项目是这个德行也是给我干无语了,多少有点不知所措,看着很不顺眼,缺了好多东西, 我的src呢

网络异常,图片无法展示
|



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5月前
|
小程序
简单的写博客小程序模板
这是一款非常简单实用的手机写博客,个人日记记录,个人博客微信小程序页面模板。包含:博客主页、写博客、我的个人、登录、注册等。
83 0
|
7月前
|
开发框架 前端开发 JavaScript
next.js博客搭建_初始化next项目(第一步)
next.js博客搭建_初始化next项目(第一步)
109 1
|
7月前
|
JavaScript 前端开发 容器
如何使用Contentlayer和Tocbot创建博客网站目录?
如何使用Contentlayer和Tocbot创建博客网站目录?
99 0
【博客项目】—用户修改功能(十一)
【博客项目】—用户修改功能(十一)
【博客项目】—用户删除功能(十二)
【博客项目】—用户删除功能(十二)
|
网络安全 Windows
hexo博客2:初始化
hexo博客2:初始化
67 0
|
自然语言处理 编译器 程序员
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
【跟着操作就行了】手把手教你 编译+链接 程序环境教程
117 0
|
前端开发 NoSQL Java
博客项目(2、网站原型)
博客项目(2、网站原型)
172 0
|
前端开发
前端项目实战173-初始化设置activekey
前端项目实战173-初始化设置activekey
81 0