SpringBoot Properties 란
- 스프링 부트의 기본 기능 전체를 튜닝하는 부트 전용 설정 프로퍼티를 말한다.
- 부트의 기능 거의 대부분을 제어한다.
- 기본값이 세팅되어 있어서 아무 것도 쓰지 않는다고 해도 디폴트 값으로 작동한다.
- 만약 설정을 자바 코드 레벨에서 하고있다면, Properties 로 관리할 수 있는지 여부를 체크해볼 필요가 있다.
자바코드 vs Properties
- 예를들어 아래와 같은 DataSorce 에 관한 설정이 있다고 해보자.
@Configuration
public class DataSourceConfig {
@Bean
public DataSource getDataSource() {
DataSourceBuilder<?> builder = DataSourceBuilder.create();
builder.username("hyunwook");
builder.password("1234")
builder.url("jdbc:h2:mem:test");
builder.driverClassName("org.h2.Driver");
}
}
- 아래와 같이 간단하게 Properties 로 관리할 수 있다.
spring.datasource.driver-class-name="org.H2.Driver" spring.datasource.username=hyunwook spring.datasource.password=1234
- 이렇게 Properties 를 잘 활용하면 불필요하게 자바코드로 설정할 필요가 없다.
Properties 설정 종류
- Core Properties
- Cache Properties
- Mail Properties
- JSON Properties
- Data Properties
- Transaction Properties
- Data Migration Properties
- Integration Properties
- Web Properties
- Templationg Properties
- Server Properties
- Security Properties
- RSocket Properties
- Actuator Properties
- Devtools Properties
- Testing Properties
자주 사용하는 Properties 설정
- logging
- debug
- trace
- logging.level.원하는.패키지.이름
- ex) logging.level.com.servicedest.app=debug
- config
- spring.config.activate.on-profile
- spring.config.import
- spring.config.use-legacy-processing
- main
- spring.main.banner-mode
- spring.main.lazy-initialization
- web
- spring.hateoas.use-hal-as-default-json-media-type
- spring.mvc.converters.preferred-json-mapper
- spring.mvc.format.date
- spring.mvc.format.date-time
- spring.mvc.format.time
- spring.mvc.view.prefix
- spring.mvc.view.suffix
- server
- server.error.whitelabel.enabled
- server.port
- http encoding, session, ssl, tomcat ...
@SpringBootApplication
- @SpringBootConfiguration: 스프링 부트용 @Configuration 이다.
- @EnableAutoConfiguration: 사전에 정의한 라이브러리를 빈을 등록한다.
- @ComponentScan: 각종 스프링 빈 애노테이션을 베이스 패키지에서부터 스캔하여 스프
링 빈으로 스프링 IoC 컨테이너에 등록한다.
@SpringBootApplication 속성
@SpringBootApplication(
exclude = {WebMvcAutoConfiguration.class},
excludeName = {"org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration"},
scanBasePackages = {"com.hyunwook.servicedesk.app"},
scanBasePackageClasses = {MainController.class},
nameGenerator = BeanNameGenerator.class,
proxyBeanMethods = true
)
- exclude : 제거하고 싶은 AutoConfiguration 를 설정할 수 있다.
- excludeName : 패키지 명으로 제거하고 싶은 AutoConfiguration 를 설정할 수 있다.
- scanBasePackages : @ComponentScan 할 패키지를 지정한다.
- scanBasePackageClasses :
- nameGenerator : BeanNameGenerator 를 설정할 수 있다.
- proxyBeanMethods : Lite mode 을 설정할 수 있다. -> proxy mode -> Cglib 사용여부
SpringApplication 인스턴스 설정
public static void main(String[] args) {
SpringApplication application = new SpringApplication(ServiceDeskApplication.class);
application.setBannerMode(Banner.Mode.OFF);
application.run(args);
}
- 위와 같이 SpringApplication 인스턴스를 활용해서 부가적인 설정을 할 수 있다.
- 예를들어, 위와 같이 세팅하면 서버가 구동될때 배너가 보이지 않는다.
REFERENCES
'Other' 카테고리의 다른 글
gradle 파일 이해하기 (0) | 2022.06.11 |
---|---|
intellij 단축키 (0) | 2022.03.14 |
JDK, JRE, SDK, JavaSE, JavaME, JavaEE 정리 (0) | 2022.02.28 |
java (Spring)로 Shell Script 실행 하기 (0) | 2022.02.28 |
Lombok 사용시 주의할 점 (0) | 2022.02.28 |