接下来我们就开始进入正文了,开始进行项目的功能开发,这里项目模块为上文创建的项目结构中的service-edu模块,项目结构创建过程可以参考https://blog.csdn.net/qq_44762290/article/details/107441065
- 资源文件的配置application.properties或application.yml
#服务端口
server.port=8001
#服务名
spring.application.name=service-edu
#环境设置:dev,test,port
spring.profiles.active=dev
#数据库配置连接
#数据库驱动配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
#数据库地址配置
spring.datasource.url=jdbc:///guli?serverTimezone=GMT%2B8
#用户配置
spring.datasource.username=root
spring.datasource.password=ffy106
#mybatics日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
-
开发controller,service,mapper代码内容
这里我们可以使用mybatis-plug提供的代码生成器,生成相关代码,代码生成器就是一个工具
在test/java目录下创建包com.atguigu.eduservice,创建代码生成器:CodeGenerator.java
这里有代码生成器的代码文件,代码是mybatis-plug提供的代码文件,我们只需要修改其中的一些配置即可,这里提供代码文件如下。
然后运行该程序,运行前要修改文件中的路径:修改成自己的文件路径,这里是代码生成器生成的位置
- 修改自己的数据库密码
- 生成后的目录结构应该是
- 教师信息显示
首先利用代码生成器后,会生成一定的文件,这时我们在controller包下的EduTeacherController.java文件
我们添加两个注解
@RestController
@RequestMapping("/eduservice/teacher")
- 注入service
@Autowired
private EduTeacherService teacherService;
- 然后我们添加方法
@ApiOperation(value = "所有讲师列表")
@GetMapping("findAll")
public List<EduTeacher> findAllTeacher() {
//调用service的方法实现查询所有的操作
List<EduTeacher> list = teacherService.list(null);
// return R.ok().data("items",list);
return list;
}
- 然后我们添加启动类EduApplication.java
@SpringBootApplication
@ComponentScan(basePackages = {"com.atguigu"})
public class EduApplication {
public static void main(String[] args) {
SpringApplication.run(EduApplication.class, args);
}
}
- 最后我么运行启动类,然后在浏览器输入http://localhost:8001/eduservice/teacher/findAll
就可以显示数据库中的数据。
4.讲师逻辑删除功能
- EduTeacherController添加删除方法
@DeleteMapping("{id}")
public boolean removeById(@PathVariable String id){
return teacherService.removeById(id);}
- 配置逻辑删除插件
MyBatisPlusConfig中配置
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();}
- 测试,对于删除以及后期的其他测试使用的是Swagger方法测试
- Swagger2
- 简介
前后端分离开发模式中,api文档是最好的沟通方式
Swagger2是一个规范和完整的框架,用于生成、描述、调用和可视化RESTFUL风格的web服务
- 及时性(接口变更后,能够及时准确地通知相关后端开发人员)
- 规范性(并且保证接口的规范性,如接口的地址,请求方式,参数及响应格式和错误信息
- 一致性(接口信息一致,不会出现因开发人员拿到的文档版本不一样,而出现分歧
- 可测性(直接在接口文档上进行测试,以方便理解业务
- 配置swagger2
- 创建common模块,在guli-parent下创建模块common
- 在common中引入相关依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<scope>provided </scope>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<scope>provided </scope>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided </scope>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<scope>provided </scope>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<scope>provided </scope>
</dependency>
<!-- redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- spring2.X集成redis所需common-pool2
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>2.6.0</version>
</dependency>-->
</dependencies>
- 在common下面创建子模块service-base,创建后的结构为