mybatisplus测试类正常,在项目main方法下运行报错:Exception in thread "main" java.lang.NullPointerExcepti
测试类正常运行代码
@SpringBootTest
public class TEST {
@Autowired
private UserDao userDao;
@Test
void testGetAll(){
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
}
main方法中运行报错:Exception in thread "main" java.lang.NullPointerExcepti
public class Main {
@Autowired
private static UserDao userDao;
public static void main(String[] args) {
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
}
错误信息
at org.example.Main.main(Main.java:21)
进程已结束,退出代码1
求解
在main方法中,需要手动创建Spring容器来获取bean,不能直接使用@Autowired注解。
你可以使用SpringApplication来创建Spring容器,如下所示:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(MyApplication.class, args);
UserDao userDao = context.getBean(UserDao.class);
List<User> userList = userDao.selectList(null);
System.out.println(userList);
}
}