Spring

메인 메소드를 작성하지 않고 스프링 앱을 자체 시작하는 방법은 무엇입니까?

기록만이살길 2021. 3. 7. 05:03
반응형

메인 메소드를 작성하지 않고 스프링 앱을 자체 시작하는 방법은 무엇입니까?

1. 질문(문제점):

따라서 기본 메서드를 작성하지 않고 명령 줄 Spring 앱을 초기화하고 시작할 수있는 방법이 있습니다. 이러한 모든 주요 방법이 동일한 형태를 갖는 것 같습니다.

public static void main(final String[] args) throws Exception {
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml", Boot.class);
    SomeService someService = (SomeService) applicationContext.getBean("someService");
    someService.bar();
}

복잡하지 않다고 생각하지만 누군가가 명령 줄 또는 매니페스트 파일에서 context.xml을 지정하는 방법을 제공하는 방법을 찾았습니까?

여기서 목표는 실행 가능한 jar로 스프링 애플리케이션의 생성을 단순화하는 것입니다. 매니페스트에서 일부 유틸리티 클래스를 Main-Class로 지정할 수 있기를 바랍니다. 또한 앱의 시작점, Bean 및 프로세스를 시작하는 메서드를 지정해야한다고 가정합니다.

2. 해결방안:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.stackoverflow</groupId>
  <artifactId>stackoverflow-autostart-spring-app</artifactId>
  <version>0.1</version>

  <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring</artifactId>
      <version>2.5.2</version>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <configuration>
          <archive>
            <manifest>
              <mainClass>com.stackoverflow.spring.autostart.Autostart</mainClass>
            </manifest>
          </archive>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

랜덤의 수의 xml 및 속성 파일을 arguments.java -cp myapp.jar util.SpringMain context.xml로 사용하는 간단한 SpringMain을 작성합니다. 신청

65740288
반응형