본문 바로가기

Spring/Spring Boot

(SpringBoot) SpringApplication(1)

커스터마이징 기능을 사용하기위한 실행 방법

일반적으로 아래와 방법으로 프로젝트를 실행한다.

하지만 이러한 식으로 처리하면 스프링이 제공하는 다양한 커스터마이징 기능을 사용하기가 어려워진다.

@SpringBootApplication
public class SpringinitApplication {

	public static void main(String[] args) {
		SpringApplication.run(SpringinitApplication.class, args);
	}

}

 

커스터마이징을 위해서 아래의 코드를 사용하는 것을 추천

@SpringBootApplication
public class SpringinitApplication {

	public static void main(String[] args) {
//		SpringApplication.run(SpringinitApplication.class, args);
		SpringApplication springApplication = new SpringApplication(SpringinitApplication.class);
		springApplication.run(args);
	}
}

로그 레벨 변경

디폴트 레벨인 INFO레벨의 로그를 Debug 레벨로 변경

VM options 변경
Program arguments 변경

Debug Level로 설정하면 어떠한 자동설정이 적용이 되었고 또 어떠한 자동설정이 적용이 안되었는지를 볼 수있다.


배너 변경

 

 

 

resources 하위에 banner.txt 파일 생성

 

 

 

 

자기가 원하는 Banner 입력

 

 

 

실행결과

 

${application.version}

The version number of your application, as declared in MANIFEST.MF. For example, Implementation-Version: 1.0 is printed as 1.0.

${application.formatted-version}

The version number of your application, as declared in MANIFEST.MF and formatted for display (surrounded with brackets and prefixed with v). For example (v1.0).

${spring-boot.version}

The Spring Boot version that you are using. For example 2.2.2.RELEASE.

${spring-boot.formatted-version}

The Spring Boot version that you are using, formatted for display (surrounded with brackets and prefixed with v). For example (v2.2.2.RELEASE).

${Ansi.NAME} (or ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME})

Where NAME is the name of an ANSI escape code. See AnsiPropertySource for details.

${application.title}

The title of your application, as declared in MANIFEST.MF. For example Implementation-Title: MyApp is printed as MyApp.

 

Manifest 파일을 생성하기 위해서 스프링을 패키징 한다.

 

스프링 부트의 패키징은 jar파일 하나에 모든 의존성을 포함해서 만든다.

 

mvn package

java -jar target/springinit-0.0.1-SNAPSHOT.jar

 

배너를 끄고 싶을 때

public static void main(String[] args) {
//		SpringApplication.run(SpringinitApplication.class, args);
  SpringApplication springApplication = new SpringApplication(SpringinitApplication.class);
  springApplication.setBannerMode(Banner.Mode.OFF);
  springApplication.run(args);
}

코딩으로 배너 만들기

@SpringBootApplication
public class SpringinitApplication {

	public static void main(String[] args) {
//		SpringApplication.run(SpringinitApplication.class, args);
		SpringApplication springApplication = new SpringApplication(SpringinitApplication.class);
		springApplication.setBanner(new Banner() {
			@Override
			public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
				out.println("===========================");
				out.println("Hello");
				out.println("===========================");
			}
		});
		springApplication.setBannerMode(Banner.Mode.OFF);
		springApplication.run(args);
	}
}

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-spring-application.html#boot-features-spring-application

 

Spring Boot Features

If you need to call remote REST services from your application, you can use the Spring Framework’s RestTemplate class. Since RestTemplate instances often need to be customized before being used, Spring Boot does not provide any single auto-configured RestT

docs.spring.io

 

코드참조 

https://github.com/mike6321/Spring/tree/master/SpringBoot/springinit

 

mike6321/Spring

Contribute to mike6321/Spring development by creating an account on GitHub.

github.com

 

'Spring > Spring Boot' 카테고리의 다른 글

(SpringBoot) Logging  (0) 2020.01.05
(SpringBoot) 프로파일  (0) 2020.01.05
(SpringBoot) 외부설정(2)  (0) 2020.01.04
(SpringBoot) 외부설정(1)  (0) 2020.01.04
(SpringBoot) SpringApplication(2)  (0) 2020.01.03