Spring Application.run 메인메서드
스프링 스타터 프로젝트 템플릿을 사용하여 이클립스에서 프로젝트를 만들었습니다.
Application 클래스 파일이 자동으로 생성되고 이 경로는 POM.xml 파일의 경로와 일치하므로 모든 것이 정상입니다.어플리케이션 클래스는 다음과 같습니다.
@Configuration
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
//SpringApplication.run(ReconTool.class, args);
ReconTool.main(args);
}
}
이것은 제가 만들고 있는 명령줄 앱입니다.실행하려면 Spring Application.run 행을 코멘트하고 다른 클래스의 메인 메서드를 추가하여 실행해야 합니다.이 퀵 제리 리그 말고도 메이븐을 사용해서 만들 수 있고 스프링 어플리케이션으로 동작합니다.
단, 이 행을 코멘트할 필요는 없으며, 완전한 스프링 프레임워크를 사용하고 싶습니다.이거 어떻게 해?
뛰어가야 해SpringApplication.run()
왜냐하면 이 방법은 스프링 프레임워크 전체를 시작하기 때문입니다.아래 코드는 다음과 같습니다.main()
Spring Boot을 클릭합니다.
Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
ReconTool.java
@Component
public class ReconTool implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
main(args);
}
public static void main(String[] args) {
// Recon Logic
}
}
그거 좋지SpringApplication.run(ReconTool.class, args)
이러한 방식의 스프링은 완전히 구성되지 않았기 때문입니다(구성 요소 스캔 등이 없음).run()에서 정의된 bean만 생성됩니다(ReconTool).
프로젝트 예: https://github.com/mariuszs/spring-run-magic
사용방법:
@ComponentScan
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
//do your ReconTool stuff
}
}
모든 상황에서 동작합니다.응용 프로그램을 IDE에서 시작할지 빌드 도구에서 시작할지 여부입니다.
maven을 사용하는 것만으로 사용mvn spring-boot:run
그라데일 때gradle bootRun
실행 방식으로 코드를 추가하는 대안으로 Spring Bean을 사용하는 것이 있습니다.CommandLineRunner
다음과 같이 됩니다.
@Component
public class ReconTool implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
//implement your business logic here
}
}
Spring 공식 가이드 저장소에서 이 가이드를 확인하십시오.
스프링 부트 매뉴얼은 여기를 참조하십시오.
또 하나의 방법은 애플리케이션을 확장하는 것입니다(부모를 상속하고 커스터마이즈하는 어플리케이션과 같음).부모 및 명령어를 자동으로 호출합니다.
@SpringBootApplication
public class ChildApplication extends ParentApplication{
public static void main(String[] args) {
SpringApplication.run(ChildApplication.class, args);
}
}
언급URL : https://stackoverflow.com/questions/24271705/springapplication-run-main-method
'programing' 카테고리의 다른 글
mongo 쿼리의 출력을 csv 파일로 리디렉션 (0) | 2023.03.19 |
---|---|
Wordpress Fatal 오류:검출되지 않은 오류: /wp-includes/wp-db.php:1570의 정의되지 않은 함수 mysql_connect()를 호출합니다. (0) | 2023.03.19 |
Javascript를 사용하여 JSON 개체 업데이트 (0) | 2023.03.19 |
Oracle: VARCHAR2 열을 CLOB로 변경 (0) | 2023.03.19 |
동면기의 오라클 시퀀스는 큰 갭을 만들어 낸다 (0) | 2023.03.19 |