木字楠后台管理系统开发(2):SpringBoot项目代码生成以及基础接口测试
创始人
2024-04-20 07:02:58

在这里插入图片描述


🎶 文章简介:木字楠后台管理系统开发(2):SpringBoot项目代码生成以及基础接口测试
💡 创作目的:为了带大家完整的体验木字楠后台管理系统模版的开发流程
☀️ 今日天气:一场秋雨一场寒,天气越来越冷了
📝 每日一言:成熟不是人的心变老,是泪在打转还能微笑。


文章目录

  • 🎈 1、导入数据库文件
  • 🧨 2、配制文件中配制数据库信息
  • ✨ 3、使用代码生成器快速生成代码
    • 🎉 3-1、引入所需依赖信息
    • 🎊 3-2、在测试目录中测试代码生成
    • 🎃 3-3、Swagger接口管理引入
  • 🎄 4、接口编写测试
    • 🎋 4-1、本地接口测试
    • 🎍 4-2、Swagger接口查看
  • 🎎 5、主启动类改造

🎈 1、导入数据库文件

🧨 2、配制文件中配制数据库信息

在进行代码生成之前,我们需要先配制数据库信息,否则会出现异常信息。
大家根据自身编码习惯选择使用 yml 文件还是 properties 文件

在这里插入图片描述

spring:application:name: MuZiNan-Template-Server# Database Configurationdatasource:driver-class-name: com.mysql.cj.jdbc.Driver  # 8版本不需要修改   5版本需要修改url: urlusername: usernamepassword: password

✨ 3、使用代码生成器快速生成代码

我们这里使用到的是MyBatisPlus 的代码生成器,详情见 https://baomidou.com/pages/779a6e

🎉 3-1、引入所需依赖信息

我们需要引入MyBatisPlus的依赖和MyBatisPlusGenerator的依赖

    1.83.5.2	3.5.32.3com.baomidoumybatis-plus-boot-starter${mybatis-plus.version}com.baomidoumybatis-plus-generator${mybatis-plus-gender.version}org.apache.velocityvelocity-engine-core${velocity.version}

🎊 3-2、在测试目录中测试代码生成

我们是用MyBatisPlus官网中的示例代码来完成代码生成,但是我们需要对官方模板进行一定的补充。

在这里插入图片描述

    @Testvoid contextLoads() {FastAutoGenerator.create("url", "username", "password")// 全局配置.globalConfig((scanner, builder) -> {builder.author("MuZiNan")   // 作者名称.dateType(DateType.ONLY_DATE).outputDir(System.getProperty("user.dir") + "\\src\\main\\java") //项目目录.enableSwagger()  //开启Swagger.commentDate("yyyy-MM-dd HH:mm:ss");  //时间格式化})// 包配置.packageConfig((scanner, builder) -> {builder.parent("com.muzinan.template")   //包列表.pathInfo(Collections.singletonMap(OutputFile.xml, System.getProperty("user.dir") + "\\src\\main\\resources\\mapper"));   // xml生成位置})// 策略配置.strategyConfig((scanner, builder) -> builder.addInclude(getTables("all")) //生成哪些表  all则生成全部.controllerBuilder().enableRestStyle().enableHyphenStyle().serviceBuilder().formatServiceFileName("%sService") //service名称.formatServiceImplFileName("%sServiceImpl") //service实现类名称.entityBuilder().enableLombok().addTableFills(new Column("gmt_create", FieldFill.INSERT),       //new Column("gmt_update", FieldFill.INSERT_UPDATE)).build()).execute();}/*** 处理 all 情况*/protected static List getTables(String tables) {return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));}

我们官方实例模板来进行修改,填空题👻
注意点: 自处配置并未设置覆盖原有文件(为了防止再次生成代码覆盖之前的代码。
若Mapper已经存在则再次使用代码生成器则会产生报错信息,此时我们需要检查是否生成表错误,或者将原有文件删除重新进行生成。

在这里插入图片描述
在这里插入图片描述

MyBatisPlus配制文件编写, mapper文件扫描.

在这里插入图片描述


/*** @author: MuZiNan* @createDate: 2022/11/30* @description: MyBatisPlus配置文件* @version: 1.0*/
@Configuration
@MapperScan(basePackages = "com.muzinan.template.mapper.**")
public class MyBatisPlusConfiguration {
}

application.yml文件新增

mybatis-plus:mapper-locations: classpath*:/mapper/*.xmlglobal-config:db-config:logic-delete-field: isDeletedlogic-delete-value: 1logic-not-delete-value: 0

🎃 3-3、Swagger接口管理引入

依赖信息引入,此处除了引入Swagger依赖外,还引入了Swagger 的皮肤依赖。这也导致我们Swagger的访问路径发送变化。

    3.0.03.0.3io.springfoxspringfox-boot-starter${swagger.version}io.swaggerswagger-modelscom.github.xiaoyminknife4j-spring-boot-starter${knife4j.version}

Swagger配制类信息,我们可以自行分包,通过swagger 的包扫码进行接口的分组实现。

在这里插入图片描述
在这里插入图片描述

/*** @author: MuZiNan* @createDate: 2022/11/30* @description: Swagger配制信息* @version: 1.0*/
@Configuration
public class SwaggerConfiguration {@Beanpublic Docket createSecurityRestApi() {return createRestApi("security", "com.muzinan.template.controller.security");}@Beanpublic Docket createSystemRestApi() {return createRestApi("system", "com.muzinan.template.controller.system");}/*** 创建api** @param groupName   分组名称* @param basePackage 包路径* @return Docket*/public Docket createRestApi(String groupName, String basePackage) {return new Docket(DocumentationType.OAS_30).enable(true).apiInfo(apiInfo()).groupName(groupName).select().apis(RequestHandlerSelectors.basePackage(basePackage)).paths(PathSelectors.any()).build();}/*** api简介信息** @return ApiInfo*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("标题:木字楠后台管理系统模板").description("描述: 木字楠后台管理系统模板接口文档...").contact(new Contact("木字楠", "www.nanjustar.top", "486356410@qq.com")).version("v1.0").build();}}

🎄 4、接口编写测试

🎋 4-1、本地接口测试

手动在数据库中添加了一条登陆日志记录,方便接下来的接口测试。

在这里插入图片描述

编写测试接口

/*** 

* 登陆日志表 前端控制器*

** @author MuZiNan* @since 2022-11-30 10:18:24*/ @RestController @Api(tags = "登陆日志模块") @RequestMapping("/login-log") public class LoginLogController {@Autowiredprivate LoginLogService loginLogService;@ApiOperation(value = "查询列表")@GetMapping("/list")public ResponseResult listData() {return ResponseResult.success("查询成功", loginLogService.list());}}

测试成功(此处使用的是 FastRequest 插件,为收费插件)

在这里插入图片描述

🎍 4-2、Swagger接口查看

Swagger文档查看
我们会发现在System分组下已经出现了对应的接口信息,这是由于我们在Controller中使用了
@Api() 注解 和 @ApiOperation() 注解

在这里插入图片描述

🎎 5、主启动类改造

我们启动项目之后需要去进行接口测试或者打开swagger文档,但是每次都需要我们去浏览器输入url,这样有时候会很麻烦,所以我们可以对主启动类进行一定改造。

在这里插入图片描述

    public static void main(String[] args) {ConfigurableEnvironment env = SpringApplication.run(MuZiNanTemplateApplication.class, args).getEnvironment();log.info("\n----------------------------------------------------------\n\t" +"Application:'{}' is running! Access URLs:\n\t" +"Local URL: \thttp://localhost:{}\n\t" +"Document:\thttp://localhost:{}/doc.html\n" +"----------------------------------------------------------",env.getProperty("spring.application.name"), env.getProperty("server.port"), env.getProperty("server.port"));}

这样当我们启动成功之后,就可以直接通过下方url直接进行访问。

在这里插入图片描述


在这里插入图片描述

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...