前端
使用nginx开启前端,再用localhost去访问前端的页面
git部分
使用git环境去上传代码至gitee
后端部分
ctrl+shift+B 跳转到相关的代码
总体的代码是由Controller去完成登录的功能,接受一个DTO参数,通过service的login方法可以去数据库获取employee的所有属性,在处理一下密码等信息,返回Result类中的succes内容是employeeLoginVO(这个类是有builder构建器封装的,这样可以将jwt令牌和employee等数据传递回前端)
return Result.success(employeeLoginVO);
整体目前是通过DTO接受前端传过来的数据交给后端处理(将前端的数据交给登录service去处理登陆的事情 : 去对比数据库是否有这个数据,如果有返回所有employee的内容)
@RestController
@RequestMapping("/admin/employee") //后端请求地址 localhost:8080/admin/employee/login 但是前端是localhost/login 不一致的 :
@Slf4j //因为由nginx反向代理,将前端的动态请求nginx转发到了后端的服务器tomcat(提高访问速度,均衡负载给不同的服务器(有多太服务器的情况,保证后端服务器的安全)
public class EmployeeController { //通过一个配置文件nginx.conf去配置转发的到哪个请求路径 负载均衡也是一个配置文件 /api/ {proxy pass + 网址} 配置文件在前端代码中,不在后端
@Autowired
private EmployeeService employeeService;
@Autowired
private JwtProperties jwtProperties; //通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据
/**
* 登录
*
* @param employeeLoginDTO
* @return
*/
@PostMapping("/login")
public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) { //employeeLoginDTO是通过前端传过来的东西
log.info("员工登录:{}", employeeLoginDTO); //在log中打印employeeLoginDTO的内容 员工登录:EmployeeLoginDTO(username=admin, password=123456)
Employee employee = employeeService.login(employeeLoginDTO); //将前端的数据交给登录service去处理登陆的事情 : 去对比数据库是否有这个数据,如果有返回所有employee的内容
//登录成功后,生成jwt令牌
Map<String, Object> claims = new HashMap<>();
claims.put(JwtClaimsConstant.EMP_ID, employee.getId()); //将从数据库获取到的employ的数据封装进 jwt令牌
String token = JwtUtil.createJWT(
jwtProperties.getAdminSecretKey(),
jwtProperties.getAdminTtl(), //通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据
claims);
EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder() //builder构建器封装 再将jwt令牌和employee等数据传递回前端
.id(employee.getId())
.userName(employee.getUsername())
.name(employee.getName())
.token(token)
.build();
return Result.success(employeeLoginVO);
}
/**
* 退出
*
* @return
*/
@PostMapping("/logout")
public Result<String> logout() {
return Result.success();
}
}
,具体来说就是DTO的类交给Service类的方法去处理,将从数据库获取到的employ的数据封装进 jwt令牌,通过jwtProperties这个配置文件,去读取yml配置文件里面的内容变成jwtProperties的内容值,就可以使用通过jwtProperties来获取配置文件yml的数据
登录加密
登录的部分使用md5加密进行加密一下,再数据库里也变成md5加密。
password = DigestUtils.md5DigestAsHex(password.getBytes());
接口文档使用
使用https://yapi.pro/
把json文件当如到网站之中
Swagger
使用knife4j,代码重点:
一个是指定要去扫描的controller的位置,一个使用静态页面映射,就是可以看接口需要什么返回什么和调试
bean是注解的意思
意思就是这个会帮忙扫描controller类去自动生成接口。
这样会保存到相应的目标
.apis(RequestHandlerSelectors.basePackage("com.sky.controller")) //指定我们扫描的包去生成接口
最重要的代码
http://localhost:8080/doc.html#/home
访问这个网址,就可以知道我们的项目接口文档的内容。
可以使用调试去调试我们的接口
swagger常用注解
有注解才会在调试网站上有解释
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G