mybatisplus测试类正常,在项目main方法下运行报错:Exception in thread "main" java.lang.NullPointerExcepti

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);
    }
}