自己写的springboot第一个博客项目(二)业务代码

271 阅读2分钟

为前后端分离做准备

@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,测试主页所有文章 blogs.jpg
  • postman,测试文章id查询文章

blogid.jpg

  • swagger,测试登录功能

login.jpg

业务代码总结和下一步走向

  • 感觉自己写的不是很好,写的过于简单,有几个逻辑似乎不是很通顺。希望大家纠正
  • 可以看出修改和添加文章,必须在用户登录的情况下进行,所以要加jwt进行认证。jwt所用时间很长应该所以留在下一个板块,加油加油加油。