我必须在 MyException 类中访问 ApplicationContext
public class MyException extends Exception {
public MyException(Map<String, Map<String,String>> errorObj) throws IOException {
ApplicationContext applicationContext = ApplicationContextProvider.getApplicationContext();
Environment env = applicationContext.getEnvironment();
...
}
}
而这项服务抛出它。
@Service
public class MyServiceImpl implements MyService {
@Override
public Response myFunction() {
throw new MyException(errorObj);
...
}
}
编辑这是应用程序上下文提供程序
public class ApplicationContextProvider implements ApplicationContextAware {
private static ApplicationContext context;
public static ApplicationContext getApplicationContext(){
return context;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
context = applicationContext;
}
}
当我运行unittest时,我在ApplicationContext上得到了NullPointerException。我想模拟应用程序上下文如何做到这一点?
我发现此错误只是单元测试,但是当我使用 spring-boot:run 运行时,它工作正常
您可以在测试类中使用 SpringBootTest 注释,该注释创建一个包含测试所需的所有对象的应用程序。