Вызов метода загрузки Spring из терминала - PullRequest
0 голосов
/ 26 октября 2019

Мне искренне нужно руководство по вызову метода из терминала.

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

Я хочу вызвать 2 метода: getAll(); и deleteStudentById((long) 1); от терминала. Как я. Спасибо.

1 Ответ

1 голос
/ 26 октября 2019

Во-первых, вам не нужно создавать экземпляр 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...