Spring Boot 개발 적용 팁

Posted 2020. 9. 3. 00:25

기존 SpringFramework 3.x, 4.x를 사용하다가 Spring Boot로 갈아타면서 활용한 개발적용 팁

 

I. CustomListener class 적용

이전의 Servlet 기반 web.xml 에 정의하거나 @WebListener 사용하여 WAS 구동시 listener class를 적용하는 방법을 Spring Boot에 적용하는 방법

 

예) 이전적용 예 1.

  <listener>
    <listener-class>com.test.CustomListener</listener-class>
  </listener>

예) 이전적용 예 2. 

@WebListener
public class InitialCustomListener implements ServletContextListener {
...
}

SpringBoot 적용방법

Type I.

@Component annotation을 적용하여 등록한 Bean class 에  ApplicationListener interface구현

 @Component   
 public class CustomListener implements ApplicationListener<ApplicationStartedEvent> {
 
    @Override
	public void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent) {
      //... Biz Logic
    }
 }

Type II.

SpringBootApplication 에 직접 Listener 등록

@SpringBootApplication 
@ComponentScan(basePackages = "com.test")
public class MyApplication { 
  public static void main(String[] args) { 
  
    SpringApplication sap = new SpringApplication(MyApplication.class); 
    //Listener 추가
    sap.addListeners(new CustomListener()); 
    sap.addListeners(...);
    //Initializer 추가
    sap.addInitializers(...);
    sap.run(args); 
  } 
}

II. 외부 properties 를 적용하는 방법

개발된 jar 를 전달하여 적용하고자 할때 해당 DB 나 service port 등을 구동시 반영하고자 할때 application.properties 를 외부로 빼서 이를 start 시 적용하기 위한 방법

java -jar test-0.0.1-SNAPSHOT.jar --spring.config.location=application.properties --debug

III. MyBatis 적용을 위한 방법

 

 1. Mapper Class Scan 방법

@SpringBootApplication 
@MapperScan(basePackages = "com.test.mapper") //MyBatis Mapper Scan추가
public class MyApplication { 
  public static void main(String[] args) { 
  ... 이하 생략
  

 

 2. Mapper xml 에서 Return 시 컬럼값을 CamelCase로 자동변환하여 조회하는 설정

mybatis.configuration.map-underscore-to-camel-case=true

# mybatis 매핑 type을 짧게 쓰기 위한 설정
mybatis.type-aliases-package=com.test.dto

 

To Be Continue...