1. banner.txt??


 - 위 이미지를 이쁘게 꾸며보자!.

2. 변경할 파일

 1) src/main/resources/banner.txt 

 

  - banner.txt 내에 원하는 텍스트를 넣으면 된다.


 2) 파일 위치도 변경하기

  (1) 기본 설정(application.yml or application.propertioes)

banner.location=classpath:banner.txt # Banner file location.


- 원하는 경로로 변경하면 된다.


3. 이쁜 text 만들기

 1) https://devops.datenkollektiv.de/banner.txt/index.html 


 2) http://patorjk.com/software/taag/#p=display&f=Ogre&t=Memorynotfound.com




4. 결과

 - 위에서 만든 텍스트를 banner.txt 파일에 넣으면 아래와 같이 볼 수 있다.



5. 좀더 이쁘게

 1) 컬러도 적용 가능하다.

 2) 아래 링크를 들어가면 Spring version 등의 값들을 노출 시킬 수 있다.

- 링크

 3) 이미지를 넣을 수도 있다.

banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used).

banner.image.width= # Width of the banner image in chars (default 76)

banner.image.height= # Height of the banner image in chars (default based on image height)

banner.image.margin= # Left hand image margin in chars (default 2)

banner.image.invert= # If images should be inverted for dark terminal themes (default false)


 4) 이미지를 ancii 로 변경할 수 있다.

- 링크


1. X-Application-Context Header????

 - response header를 보면, 아래와 같은 header 값이 있다. 

 - application name과 port가 노출된다.

X-Application-Context:
application:8080


 - 사용자에게 알려줄 필요없는 정보다.

 - 지우자!!


2. 옵션 설정

management:
add-application-context-header: false

3. 참고 

 - 해당 Header 값은 OncePerRequestFilter에서 ApplicationContext ID를 추가한다.

1. Goal

 - spring boot에 spring-boot-starter-web를 사용 중이다.

 - was가 initialization을 마친 뒤 첫 호출 시점에 dispatcherServlet이 initialization을 한다.

 - was가 initialization을 할 동안 같이 dispatcherServlet이 initialization을 했으면 좋겠다.


2. Log

2018-02-14 13:43:58 [user-PC] [INFO ] o.a.c.c.C.[Tomcat].[localhost].[/]:179 - Initializing Spring FrameworkServlet 'dispatcherServlet'

2018-02-14 13:43:58 [user-PC] [INFO ] o.s.web.servlet.DispatcherServlet:489 - FrameworkServlet 'dispatcherServlet': initialization started

2018-02-14 13:43:58 [user-PC] [INFO ] o.s.web.servlet.DispatcherServlet:508 - FrameworkServlet 'dispatcherServlet': initialization completed in 17 ms


3-1. 수정

 1) jdk 1.8 이하

@Bean
public static BeanFactoryPostProcessor beanFactoryPostProcessor() {
return new BeanFactoryPostProcessor() {

@Override
public void postProcessBeanFactory(
ConfigurableListableBeanFactory beanFactory) throws BeansException {
BeanDefinition bean = beanFactory.getBeanDefinition(
DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);

bean.getPropertyValues().add("loadOnStartup", 1);
}
};
}


 2) jdk 1.8 이상

@Bean
public static BeanFactoryPostProcessor beanFactoryPostProcessor() {
return beanFactory -> {
BeanDefinition bean =
beanFactory.getBeanDefinition(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME);
bean.getPropertyValues().add("loadOnStartup", 1);
};
}


3-2. 수정(추천!!)

 - application.yml에 해당 내용 추가. (기본으로 -1로 되어 있다.)

spring:
mvc:
servlet:
load-on-startup: 1

  - application.properties일 경우

spring.mvc.servlet.load-on-startup=1


* 참고자료

https://stackoverflow.com/questions/31322670/how-to-configure-dispatcherservlet-load-on-startup-by-spring-boot

+ Recent posts