凡人码农 2024-04-14 18:26 采纳率: 60%
浏览 27

springboot启动出现空指针异常 Java

自己写的小东西,空指针异常,但是该加的restController,service,mapper注解都加完了,为什么

img

下面贴出完整的代码::

img

Controller层:

package com.example.lib.controller;


import com.example.lib.po.Book;
import com.example.lib.result.Result;
import com.example.lib.service.BookService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@Slf4j
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService bookService;

    @PostMapping("/add")
    //新增图书
    public Result addBooks(@RequestBody Book book){

        Boolean isAlReadyExit = bookService.select(book);
        if (isAlReadyExit){
            return Result.error("序号已存在");
        }else {
            bookService.add(book);
            return Result.success("添加成功");
        }
    }


    //查询图书
    @GetMapping("/select")
    public Result<List<Book>> selectBooks(){
        return Result.success(bookService.select());
    }
}


mapper接口层:

package com.example.lib.mapper;

import com.example.lib.po.Book;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface BookMapper {

    Book selectByBookId(String bookId);

    @Select("select * from books")
    List<Book> select();

    Boolean add(Book book);
}


book实体类:

package com.example.lib.po;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder

public class Book {
    private Long id;
    private String bookName;
    private String author;
    private String publish;
    private BigDecimal price;
    private String bookId;
    private Date inputDate;

}


BookService 的实现类:

package com.example.lib.service.serviceImpl;

import com.example.lib.mapper.BookMapper;
import com.example.lib.po.Book;
import com.example.lib.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper bookMapper;
    public void add(Book book) {
        bookMapper.add(book);
    }


    public Boolean select(Book book) {
        String bookId = book.getBookId();
        Book book1 = bookMapper.selectByBookId(bookId);
        if (book1!=null){
            return false;
        }
        return null;
    }

    @Override
    public List<Book> select() {
       return bookMapper.select();
    }
}


application.properties配置图:

img

  • 写回答

5条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    根据提供的信息,我们可以初步确定出现NullPointerException的原因是在启动应用程序时无法找到活动的配置文件,导致spring容器无法初始化所需的bean。根据错误日志,我们可以看到一些警告信息和错误信息,具体如下:

    警告信息: No active profile set, falling back to default profiles: default

    错误信息: Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled

    为了解决这个问题,我们可以采取以下步骤:

    1.确定配置文件位置:

    请确保application.properties或application.yml文件位于正确的位置下。在Spring boot中,配置文件的默认位置是src/main/resources。如果配置文件位置不正确,就会导致应用程序无法找到配置信息,从而出现应用程序启动失败。

    2.检查配置文件是否正确的设置:

    在application.properties或application.yml文件中,我们应该确保配置信息与应用程序实际需要的信息一致。请注意检查数据源、URL、端口号等信息是否有误。

    3.学习日志信息:

    当我们遇到应用程序启动失败的情况时,请仔细阅读错误信息和日志,以了解问题的具体原因。

    4.启用调试模式:

    如果在日志中看不到详细的错误信息,可以考虑启用调试模式,来获得更多信息。只需在应用程序启动时加上--debug参数即可开启调试模式。

    如果按照以上步骤操作后仍然出现问题,可以考虑向社区提问或者查看相关文档了解更多信息。

    修改后的代码:

    我们并没有给出具体的Java代码,因此无法进行修改或指导。

    评论 编辑记录

报告相同问题?

问题事件

  • 修改了问题 4月14日
  • 修改了问题 4月14日
  • 创建了问题 4月14日

悬赏问题

  • ¥15 ul做导航栏格式不对怎么改?
  • ¥20 用户端如何上传图片到服务器和数据库里
  • ¥15 现在研究生在烦开题,看了一些文献,但不知道自己要做什么,求指导。
  • ¥30 vivado封装时总是显示缺少一个dcp文件
  • ¥100 pxe uefi启动 tinycore
  • ¥15 我pycharm运行jupyter时出现Jupyter server process exited with code 1,然后打开cmd显示如下
  • ¥15 可否使用carsim-simulink进行四轮独立转向汽车的联合仿真,实现四轮独立转向汽车原地旋转、斜向形式、横移等动作,如果可以的话在carsim中如何进行相应设置
  • ¥15 Caché 2016 在Java环境通过jdbc 执行sql报Parameter list mismatch错误,但是同样的sql使用连接工具可以查询出数据
  • ¥15 疾病的获得与年龄是否有关
  • ¥15 opencv.js内存,CPU飙升