注释服务 class 在存储库调用时抛出空指针异常

service annotated class throws nullpointer exception on a repository call

在 Spring 应用程序中,我有一个名为 Utility.java 的 class 并且 class 使用 @Service 注释进行注释。在那个 class 中,我试图在项目中全局使用的函数中获取用户。 使用创建的实用程序方法在控制器中调用用户时,它会从存储库中抛出空指针异常。下面是代码

//Utility.java file

@Service
public class Utility{

@Autowired static UserDao userDao;

public static User findActiveUser(String auth){
        System.out.println("here is the username: " + auth);
        User user = null;
        try {
            user = Utility.userDao.findBy...("user1", "ACTIVE"); //throws null here

        }catch (Exception ex){
            ex.printStackTrace();
        }
        return user;
    }



//Controller annotated class
@Autowired Utility utility;

@GetMapping(value = "/success")
        public String success(Authentication auth,HttpServletRequest request){
            if (auth == null) {
                return "index";
            }
            System.out.println("@dashboard success");
            User user = utility.findActiveUser(auth.getName());

一切看起来都很好,但仍然无法正常工作

您不能 @Autowired 静态字段。

您必须从此行中删除 static 个词 @Autowired static UserDao userDao; 或实施其他逻辑以将值自动装配到静态字段。