我正在构建一个将从命令行调用的 Spring Boot 应用程序。 我将向应用程序传递一些参数,但我在从此类调用服务时遇到问题:
@SpringBootApplication
public class App{
public static void main(String[] args) {
SpringApplication.run(App.class, args);
App app = new App();
app.myMethod();
}
@Autowired
private MyService myService;
private void myMethod(){
myService.save();
}
}
我试图从 main 中调用一个方法,但出现错误:
Exception in thread "main" java.lang.NullPointerException
at com.ef.Parser.App.myMethod(Application.java:26)
at com.ef.Parser.App.main(Application.java:18)
最佳答案
您可以创建一个实现 CommandLineRunner 的类,这将在应用程序启动后调用
@Component
public class CommandLineAppStartupRunner implements CommandLineRunner {
@Autowired
private MyService myService;
@Override
public void run(String...args) throws Exception {
myService.save();
}
}
您可以获得有关此 here 的更多信息
关于java - 如何从主应用程序调用 Spring Boot 调用服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49698963/