谷粒学苑项目-第一章service子模块、service_edu二级子模块和代码生成器-1.2

文章详细介绍了如何创建GuliParent的子模块service,包括设置为POM类型,添加依赖如SpringBoot、MybatisPlus等。接着搭建了二级子模块service_edu,并强调MybatisPlus代码生成器的作用,能快速生成实体类、Mapper、Service和Controller层代码。最后提到了手动创建的edu_service模块的controller、service及mapper层结构,并展示了application.yml配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、创建guli_parent的子模块service

1. 子模块service的类型选择maven

        模块名称为service

2. 添加模块类型是POM

在<artifactId> 节点后面添加 pom类型

<artifactId>service</artifactId>
<packaging>pom</packaging>

3. 添加项目需要的依赖

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <!-- MybatisPlus代码生成器依赖spring-boot-starter-web,mybatis-plus-generator,velocity-engine-core三个插件-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity-engine-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
        </dependency>

    </dependencies>

二、搭建service_edu二级子模块

1. 在父工程service模块下面创建子模块service_edu,maven工程

2. 模块类型是默认的jar

三、MybatisPlus代码生成器

1. pom依赖,mybatisPlus,generator,velocity三个都需要

<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-boot-starter</artifactId>
   <version>${mybatis-plus.version}</version>
</dependency>
<dependency>
   <groupId>com.baomidou</groupId>
   <artifactId>mybatis-plus-generator</artifactId>
   <version>${mybatis-plus.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>${velocity.version}</version>
</dependency>

2. 代码生成器

代码生成器可以快速的根据表结构生成实体类,Mapper层,service层,controller层

public void run() {

    FastAutoGenerator.create("jdbc:mysql://localhost:3306/guli?serverTimezone=UTC", "root","yqqlm@gs1cl")
          .globalConfig(builder -> {   //全局配置
              builder.author("mca")  //设置作者
                     .enableSwagger() //开启swagger模式
                      //.fileOverride() //覆盖已生成文件
                     .dateType(DateType.ONLY_DATE) //定义生成的实体类中日期类型
                            .outputDir("F:\\project\\workspace\\guli_parent\\service\\service_edu" + "/src/main/java");//包路径
                })
                .packageConfig(builder -> {  //包配置
                    builder.parent("com.atguigu")  //设置父包名
                            .moduleName("eduservice") //设置父包模块名
                            .controller("controller")
                            .entity("entity")
                            .service("service")
                            .serviceImpl("service.impl")
                            .mapper("mapper")
                            .xml("mapper")
                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml,
                                    "F:\\project\\workspace\\guli_parent\\service\\service_edu\\src\\main\\resources\\mapper\\"));//设置mapperxml生成策略
                })
                .strategyConfig(builder -> {  //策略配置
                    builder.mapperBuilder().enableMapperAnnotation().build();
                    builder.addInclude("edu_teacher") //设置需要生成的表名列表
                            //.addTablePrefix()//过滤表名前缀,比如p_test,我们生成的实体类名就是test

                            .serviceBuilder() //service策略配置
                            .formatServiceFileName("%sService") //去掉Service接口的首字母I
                            .formatServiceImplFileName("%sServiceImpl")

                            .entityBuilder() //实体类策略配置
                            .enableLombok()  //开启lombok
                            .logicDeleteColumnName("is_deleted")  //说明逻辑删除的是哪个字段
                            .enableTableFieldAnnotation()   //属性加上说明注解

                            .controllerBuilder()  //controller配置策略
                            .enableHyphenStyle() // 映射路径使用连字符格式,而不是驼峰
                            .formatFileName("%sController")
                            .enableRestStyle()   //开启RestController

                            .mapperBuilder() //mapper配置策略
                            .superClass(BaseMapper.class)   //继承哪个父类
                            .formatMapperFileName("%sMapper")
                            .enableMapperAnnotation()   //开启@Mapper注解
                            .formatXmlFileName("%sMapper");
                }).execute();

    }

四、手动创建module:edu_service

4.1 controller层

@RequestMapping("/eduservice/teacher")
@RestController
public class EduTeacherController {
}

4.2 service层

public interface EduTeacherService extends IService<EduTeacher> {
}

service.impl

@Service
public class EduTeacherServiceImpl  extends ServiceImpl<EduTeacherMapper,EduTeacher> implements EduTeacherService{
}

 4.3 mapper层

@Mapper
public interface EduTeacherMapper extends BaseMapper<EduTeacher> {
}

五、application.yml配置

server:
  port: 8001

spring:
  application:
    name: eduservice
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/guli?serverTimezone=Asia/Shanghai
      username: root
      password: root
  #返回json统一全局时间格式
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8

mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值