King of Bots项目笔记——后端backend微服务
本文内容单纯为个人学习笔记,目的是总结学习内容,项目是y总的spring框架课,不具有任何参考意义。
SpringBoot框架
pojo
层:将数据库中的表对应成Java中的Classmapper
层(也叫Dao层):将pojo层的class中的操作,映射成sql语句service
层:写具体的业务逻辑,组合使用mapper中的操作controller
层:负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面
各层的使用方法
pojo
层:需要将数据库中的每一项都抄下来,一个数据库表对应一个pojo和一个mapper,Lombok可以自动实现对实体的操作,例如构造函数,toString,get等方法,使用注解@Data
,@NoArgsCOnstructor
,@AllArgsConstructor
进行引入。mapper
层:需要添加注解@Mapper
,MyBatis-Plus可以自动生成sql语句的映射,需要继承BaseMapper<class>
这个类,它实现的接口可以从官网的crud接口进行查看:https://baomidou.com/。
在其他地方需要引入其他包下类或接口,需要使用注释@Autowired
进行引入。
使用复杂的查询语句,可以使用条件构造器,如QueryWrapper
,详情官网可见。service
层:接口习惯返回一个Map<string, string>
,在impl中实现接口的具体业务,使用注解@Service
,可以Alt
+Ins
自动实现方法,在此基础上进行修改controller
层:需要添加注解@RestController
,引入先前定义的service接口。访问路径使用@PostMapping
和@GetMapping
进行定义,需要修改数据一般使用注解@PostMapping,不修改数据一般使用注解@GetMapping。函数中数据使用@RequestParam
机械能注释
SpringBoot配置
https://mvnrepository.com/
从Maven仓库搜索以下依赖添加到pom.xml
文件中
- Spring Boot Starter JDBC
- Project Lombok
- MySQL Connector/J
- mybatis-plus-boot-starter
- mybatis-plus-generator
- spring-boot-starter-security
- jjwt-api
- jjwt-impl
- jjwt-jackson
在application.propertiesapplication.properties
中配置数据库
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/kob?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
IDEA连接数据库
- 在命令行中打开mysql,创建一个数据库kob
- 在idea中添加mysql数据库,填写信息,测试连接成功后,点击确定
登录注册功能
- 引入相关依赖:使用spring-boot-starter-security进行验证,初始用户名默认为user,密码在启动服务时动态生成。
- 实现使用数据库用户信息进行:在service->utils,实现
UserDetailsService
接口,Alt
+Insert
对loadUserByUsername
方法进行重写。并实现其中的UserDetails
接口 ,Alt
+Insert
实现全部方法,添加Lombok注释,将所有is的方法返回为true,用user对象将get的方法返回相应值,实现通过username从数据库中查询用户密码。 - 实现用户密码的加密存储:在config包中添加一个
SecurityConfig
类,PasswordEncoder
的encode()
方法可以进行加密,matches()
方法可以进行匹配密文。
@Configuration
@EnableWebSecurity
public class<