注释服务 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;
或实施其他逻辑以将值自动装配到静态字段。
在 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;
或实施其他逻辑以将值自动装配到静态字段。