이야기박스
Chapter 7. 스프링 핵심 기술의 응용 본문
반응형
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 |