为前后端分离做准备
@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET", "HEAD", "POST", "PUT", "DELETE", "OPTIONS")
.allowCredentials(true)
.maxAge(3600)
.allowedHeaders("*");
}
}
controller 重点在注解
这里使用了@Validated 数据校验注解,就是在后台规定好前端出过来数据是否一致,spring会帮我校验数据的准确性。实用性强。参考文档juejin.cn/post/684490…
-
login
@ApiOperation(value = "登录") @PostMapping("/login") public Result login(@Validated @RequestBody LoginDto loginDto){ Result byUsername = userService.findByUsername(loginDto.getUsername(), loginDto.getPassword()); System.out.println(byUsername); return byUsername; } -
blog 有疑问点
在/blog/edit中我把增加和修改都在写在这个方法中,我感觉越写越不对劲,但是之前看过一个项目就是这么写的,但是忘了在哪里看的了,希望哥哥们再次做出评价。
@ApiOperation(value = "查询所有", notes = "分页列表") @GetMapping("/blogs") public Result list(@RequestParam(defaultValue = "1") Integer currentPage) { return blogService.findAllBlogs(currentPage); } @ApiOperation(value = "查询单个文章") @GetMapping("/blog/{id}") public Result detail(@PathVariable(name = "id") Long id) { Blog blog = blogService.getById(id); Assert.notNull(blog, "该博客已被删除"); return Result.success(blog); } @ApiOperation(value = "修改文章或者添加") @PostMapping("/blog/edit") public Result edit(@Validated @RequestBody Blog blog){ System.out.println(blog); if(blog.getId() == 0){ blog.setCreated(LocalDateTime.now()); boolean edit = blogService.insertBlog(blog); if(edit){ return Result.success(200,"添加成功",null); } return Result.fail("添加失败"); } Blog temp = null; temp = blogService.selectBlog(blog.getId()); if(temp != null){ if(temp.getUserId() != blog.getUserId()){ return Result.fail("无权限修改"); }else{ boolean flag = blogService.updateBlog(blog); return Result.success(200,"修改成功",null); } } return null; }
service
-
blog
//分页查所有,直接用mybatisPuls进行操作 @Override public Result findAllBlogs(Integer currentPage) { Page page = new Page(currentPage,5); QueryWrapper<Blog> query = new QueryWrapper<Blog>(); Page page1 = blogMapper.selectMapsPage(page, query.orderByDesc("created")); return Result.success(page1); } //查询单独id文章 @Override public Blog selectBlog(Long id) { Blog blog = blogMapper.selectById(id); return blog; } //插入新文章 @Override public boolean insertBlog(Blog blog) { int insert = 0; try { insert = blogMapper.insert(blog); }catch (RuntimeException e) { System.out.println(e.getMessage()); } if(insert > 0) { return true; } return false; } //修改文章 @Override public boolean updateBlog(Blog blog) { int i = 0; try { i = blogMapper.updateById(blog); if(i > 0){ return true; } }catch (RuntimeException e) { return false; } return false; } -
user
@Override public Result findByUsername(String username, String password) { User user = userMapper.findByUsername(username,password); System.out.println(user); /* 1.用户存在继续执行 2.用户不存在创建用户 */ if(user != null) { return Result.success(user); }else{ //感觉这样写不是很好 return Result.fail("error"); } } @Override public Object getById(Long id) { return userMapper.selectById(id); } -
userMapper.xml
<select id="findByUsername" resultType="com.wzj.dao.pojo.User"> select * from m_user where username =#{username} and password=#{password} </select>
测试
- idea插件ReatfulTool,测试主页所有文章
- postman,测试文章id查询文章
- swagger,测试登录功能
业务代码总结和下一步走向
- 感觉自己写的不是很好,写的过于简单,有几个逻辑似乎不是很通顺。希望大家纠正
- 可以看出修改和添加文章,必须在用户登录的情况下进行,所以要加jwt进行认证。jwt所用时间很长应该所以留在下一个板块,加油加油加油。