이야기박스

Chapter 7. 스프링 핵심 기술의 응용 본문

Programming Language/Spring

Chapter 7. 스프링 핵심 기술의 응용

박스님 2019. 3. 21. 19:21
반응형


7.4~7.6 초반

https://bgc8214.github.io/%EC%8A%A4%ED%94%84%EB%A7%81/2019/03/11/%EC%8A%A4%ED%94%84%EB%A7%81-7%EC%9E%A5-%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EA%B8%B0%EC%88%A0%EC%9D%98-%EC%9D%91%EC%9A%A9.html


7.6 나머지

컨텍스트 분리

테스트용 @Configuration 클래스를 별도로 생성하여 컨텍스트를 분리한다.


@ContextConfiguration(classess={})

위와 같은 방법으로 등록


@Import(**.class)

@Configuration 작업시, import한 클래스도 함께 빈으로 등록


프로파일

개발/리얼 환경에서 각기 다른 빈 정의가 필요한 경우 사용할 수 있음
@Profile("dev") , @Profile({"dev", "release"}) 

이런식으로 사용 가능


자신의 환경에 맞는 프로파일이 들어오지 않으면 무시함.


@ActiveProfile("dev")

스프링 컨테이너를 시작할때, 추가로 지정해주는 속성


컨테이너의 빈 등록 정보 확인

getBeanDefinitionNames()
: 반복문 돌면서 사용

중첩 클래스를 이용한 프로파일 적용

하나의 파일에 몰아넣고, 중첩클래스로 @Profile 구분


프러퍼티 소스

application.properties 말고 다른 프로퍼티 사용하고 싶은 경우


@PropertySource({경로})

넣어줘서 쓰는 것 ==> Environment 오브젝트 사용하는 것


@Value("${property key}") 로 직접 값을 가져다 쓸 수 있음

--> 타입변환도 스프링이 알아서 해줌



정리

- sql처럼 자주 변경될 수 있는 텍스트로 된 정보는 외부 리소스에 담아두고 가져오게 하자
- 인터페이스별로 구분하자
- 자주 사용되는 의존 오브젝트는 디폴트로 미리 정의해두자
- xml 오브젝트 매핑 --> 스프링 oxm 추상화 기능
- 특정 의존 오브젝트를 고정시켜 기능을 특화하려면 멤버 클래스로 만드는 것이 편리하다. 기존에 만들어진 기능과 중복되는 부분은 위임을 통해 중복을 제거하는게 좋다(?)
- 외부 파일/리소스 --> 리소스 로더
- DI 항상 신경쓸 것 (인터페이스 분리 원칙 지키면서)
- 클라이언트 별로 다른 인터페이스 기능이 필요할 때, 인터페이스 상속도 하나의 옵션
- 내장 DB 사용시, 스프링 내장형 DB 추상화 기능과 전용 태그 사용하면 편함


반응형

'Programming Language > Spring' 카테고리의 다른 글

Spring JPA. Batch Insert 에러  (0) 2019.03.28
Chapter 8. 스프링이란 무엇인가?  (0) 2019.03.22
Chapter 6. AOP(3) 포인트 컷과 트랜잭션  (0) 2019.02.08
Chapter 6. AOP(2)  (0) 2019.02.08
Chapter 6. AOP(1)  (0) 2019.01.23