Java学习---SpringBoot中的常见Bug合集【持续更新】

1.克隆项目的运行问题

1.1.maven 依赖插件问题

在这里插入图片描述


1.2.提示Cannot start complier

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116231831836.png

原因:缺少out目录




2.Spring Boot 项目启动运行问题

2.代码编译错误(依赖注入时候的编译)在这里插入图片描述


2.2.启动类找不到在这里插入图片描述


2.3.多个启动类问题在这里插入图片描述


2.4.运行时的空指针异常在这里插入图片描述


2.5.找不到对应的Bean对象在这里插入图片描述


2.6.依赖注入异常在这里插入图片描述


2.7.单元测试测试方法定义在这里插入图片描述


2.8.非唯一Bean的定义异常在这里插入图片描述




3.SpringBoot 工程中的数据库连接问题

3.1.URL 没有配置或配置错误在这里插入图片描述


3.2.建立url连接时通讯异常在这里插入图片描述


3.3.访问数据库时被拒绝

在这里插入图片描述




4.SpringBoot 工程中MyBatis整合问题

4.1.SQL映射找不到在这里插入图片描述


4.2.Autowired描述的属性有错误提示

在这里插入图片描述


4.3.绑定异常 BindingException

在这里插入图片描述




5.SpringBoot 工程中Web请求问题

5.1.服务未成功启动或访问端口错误在这里插入图片描述


5.2.服务启动时端口被占用问题分析

在这里插入图片描述


5.3.请求404问题及解决方案分析

在这里插入图片描述


5.4.Thymeleaf 模板不存在的异常

在这里插入图片描述


5.5.JSON数据转换异常分析

在这里插入图片描述


5.6. 400 请求异常分析在这里插入图片描述


5.7. 405 请求异常分析在这里插入图片描述


6.Ajax中的异常

6.1 并发更新异常

在这里插入图片描述

6.2 事件触发后没反应

在这里插入图片描述

6.3 对象属性访问问题在这里插入图片描述

6.4 跨域访问问题在这里插入图片描述

6.5 访问函数不存在在这里插入图片描述

6.6 回调函数理解问题在这里插入图片描述

6.7 请求415异常问题在这里插入图片描述

6.8 小图标不存在问题在这里插入图片描述

7.JS/JQuery/Ajax中的Bug

7.1接收不到ajax返回值

在这里插入图片描述

    //页面加载完成异步加载当前页数据
    function doGetObjects() {
    
    
        var id = getCurrentUserData();
        console.log("当前用户id=" + id);
        let url = `user/doFindUserInfo/${
      
      id}`;
        $.ajax({
    
    
            url,
            success(result) {
    
    
                doHandleResponseResult(result);
            }
        });
    }

    function getCurrentUserData() {
    
    
        var id ;
        $.ajax({
    
    
            url: "user/doFindCurrentUserId",
            async: false,
            success: function (result) {
    
    
                id = result;
            }
        })
        return id;
    }

8. shiro中的问题

8.1 SecurityUtils.getSubject().getPrincipal()为null

解决方法:只有User类及UserController/UserService下拿到的SecurityUtils.getSubject().getPrincipal()才是user都对象,在其他方法是拿不到值的(为null值),所以在SysUserServiceImpl中new一个hashMap且封装并返回对象信息,再从其他位置调用该方法即可!

 @Override
    public HashMap<String, Object> getCurrentUserData() {
    
    
        SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal();
        HashMap<String, Object> map = new HashMap<>();
        map.put("id", user.getId());
        map.put("username", user.getUsername());
        map.put("password", user.getPassword());
        map.put("salt", user.getSalt());
        map.put("sex", user.getSex());
        map.put("email", user.getEmail());
        map.put("mobile", user.getMobile());
        map.put("valid", user.getValid());
        map.put("createdTime", user.getCreatedTime());
        map.put("modifieTime", user.getModifiedTime());
        map.put("createdUser", user.getCreatedUser());
        map.put("birthday", user.getBirthday());
        return map;
    }

再由其他Service层进行调用该方法即可实现业务

@Override
    public int reserveSeat(SysSeat entity) {
    
    
        HashMap<String, Object> userMap = sysUserService.getCurrentUserData();
        entity.setUsedUser((String) userMap.get("username"));
        entity.setState(2);
        return sysSeatDao.reserveSeat(entity);
    }

在这里插入图片描述
出现时间:2021/2/9 11:50 图书馆座位管理系统中预定成功座位后将预定用户的用户名显示在作为列表中所出现

猜你喜欢

转载自blog.csdn.net/weixin_40597409/article/details/112726800