2020년 7월 22일 수요일

스프링부트 메인 만들기(SpringBoot main)

스프링부트 메인 만들기(SpringBoot main)

1-4. Writing the code(Spring Boot main)

http://ojc.asia/bbs/board.php?bo_table=LecSpring&wr_id=843

n 아래와 같이 main 함수를 만들면 된다.

//스프링부트 1.2 이상에서 @SringBootApplication 어노테이션은 아래 모든 어노테이션을 포함한다.

//Spring Boot에게 여러 설정들에 의해 Bean을 추가하도록 지시하는데, 묵시적으로 패키지 탐색의 베이스를 지정하여, JPA 어플리케이션을 작성했다면 현재 패키지가 @Entity 아이템을 찾기 위한 디폴트 패키지가 된다.

@EnableAutoConfiguration

@ComponentScan //현재 패키지의 빈,설정,서비스 자동스캔

@Configuration //현재 파일이 컨텍스트의 설정 파일임을 의미

public class DemoApplication{

// Spring Boot의 SpringApplication.run() 메소드를 실행, 시작점

// 웹응용프로그램이면 자동 설정된 Tomcat 웹 서버를

// 기동하면서 응용프로그램을 시작한다.

public static void main(String[] args) throws Exception {

SpringApplication.run(DemoApplication.class, args);

}

}

[실행 방법]

1. (DOS에서)프로젝트 루트에서 spring-boot-starter-parent의 run을 이용하여 Maven으로 실행한다.

D:\..>mvn spring-boot:run

2. 이클립스(STS) 프로젝트 루트 -> Run as -> Maven Build 또는 Java Application(main이 있는 Application클래스 지정)

3. 이클립스(STS) main이 있는 Application클래스에서 Run as -> Spring Boot Application 또는 Java Application으로 실행가능 하다.

1-5. Writing the code(CommandLineRunner)

n 스프링 부트를 시작할 때 Command Line arguments를 주거나, 어떤 코드를 실행하려면 CommandLineRunner 인터페이스의 run(String…args)를 구현하면 된다. 만약 CommandLineRunner 인터페이스 구현이 여러 개 있는 경우 순서를 부여하기 위해서는 @Order 어노테이션을 사용하면 된다.

@SpringBootApplication

public class CommandLineRunnerExam {

//Spring Boot 메인

public static void main(String... args) {

SpringApplication.run(CommandLineRunner.class, args);

}

}

class DefaultRunner implements CommandLineRunner {

//CommandLineRunner의 run 메소드 구현

//args는 메인 메소드의 아규먼트를 받아들인다.

public void run(String... args) throws Exception {

// joining(delimiter, prefix, suffix)

System.out.println(Arrays.asList(args).stream().collect(Collectors.joining(",",getClass().getSimpleName() + "[", "]"))); }

}

/*

java.util.stream패키지는 스트림에 대한 함수형 조작을 제공하고

Spring4에서 새로 소개된 @Order 어노테이션은 같은 타입의 빈이 컬렉션(List등)에 Autowired 될 때 그 순서를 지정한다.(낮은 숫자가 우선순위가 높다).

*/

@Named

@Order(2)

class Runner1 extends DefaultRunner {

}

@Named

@Order(1)

class Runner2 extends DefaultRunner {

}

@Named

@Order(3)

class Runner3 extends DefaultRunner {

}

[실행]

$ java -jar build/libs/commandlinerunner-exam-1.0.0.jar 이순신 안중근 유관순

Runner2[이순신 안중근 유관순]

Runner1[이순신 안중근 유관순]

Runner3[이순신 안중근 유관순]

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...