Java 从终端调用Spring引导方法
我正在研究如何从终端调用方法Java 从终端调用Spring引导方法,java,spring-boot,command-line,method-call,mainclass,Java,Spring Boot,Command Line,Method Call,Mainclass,我正在研究如何从终端调用方法 @Component public class ApplicationAdapter implements CommandLineRunner { @Autowired private IApplicationPort iApplicationPort; @Override public void run(String... args) throws Exception { iApplicationPort.get
@Component
public class ApplicationAdapter implements CommandLineRunner {
@Autowired
private IApplicationPort iApplicationPort;
@Override
public void run(String... args) throws Exception {
iApplicationPort.getAll();
iApplicationPort.deleteStudentById((long) 1);
}
}
这是主课
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
new ApplicationAdapter();
}
}
我希望调用这两个方法:getAll;并删除长1的学生;从终点站。我该怎么做呢?首先,您不需要实例化ApplicationAdapter。这将由Spring完成,因为@Component注释:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
// new ApplicationAdapter(); REMOVE
}
}
然后,您可以使用启动应用程序时传递的参数:
@Component
public class ApplicationAdapter implements CommandLineRunner {
@Autowired
private IApplicationPort iApplicationPort;
@Override
public void run(String... args) throws Exception {
if (args[0].equals("all")) {
iApplicationPort.getAll();
} else if (args[0].equals("delete"))
iApplicationPort.deleteStudentById(Long.parseLong(args[1]));
}
}
}
然后,您可以启动应用程序,如:
java -jar yourApp.jar all
java -jar yourApp.jar delete 1
如果我的回答有帮助,请接受答案并投票表决。谢谢你,谢谢。我确信这不是正确的方向,但我得到的原因是:java.lang.ArrayIndexOutOfBoundsException:0位于org.package.ApplicationAdapter.runApplicationAdapter.java:19~[classes/:na]位于org.springframework.boot.SpringApplication.callRunnerSpringApplication.java:781[spring-boot-2.1.9.RELEASE.jar:2.1.9.RELEASE]。。。省略10个常用帧如何调用该程序?当我试图用IntelliJ启动程序时,它失败了