Spring - IoC-Container(6) - MessageSource

MessageSource ApplicationContext가 가지고 있는 국제화 (i18n) 기능(메세지 다국화)을 제공하는 인터페이스이다. Spring boot를 사용한다면 별 다른 설정없이 messages.properties를 만들어 사용 가능하다. 사용 방법 1. messages.properties 파일을 생성한다. messages.properties에 들어가는 내용은 Default Locale에 해당하는 message이다. messages.properties greeting=안녕, {0} 위에서 {0} 은 인자를...

Spring - IoC-Container(5) - Environment - Profile과 Property

Environment 지난 포스트(Spring IoC Container와 Bean) 에서 공부하였듯 ApplicationContext는 BeanFactory 이외의 기능도 수행한다. ApplicationContext Interface를 확인해 보면 다음과 같은 상속관계를 갖는다. public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory, MessageSource, ApplicationEventPublisher, ResourcePatternResolver { ... } 위와 같은 클래스들 중 EnvironmentCapable는 2가지...

Spring - IoC-Container(4) - Bean의 Scope

Bean의 Scope Scope Singleton Application 전반에 걸쳐서 해당 Bean의 Instance가 오직 하나 뿐인 것. Prototype Bean을 주입할 때 마다 새로운 Bean을 생성해서 주입. Prototype Bean이 Singleton Bean을 참조하면 아무 문제가 없다. 매번 새로운 ProtoType Bean이 가지고 있는 Singleton Bean은 매번...

Spring - IoC-Container(3) - @Component와 ConponentScan

@Component와 ConponentScan ConponentScan Component를 스캔한다. basePackage는 스캔을 시작할 패키지를 정의 패키지 이름을 String으로 작성하기 때문에 Type Safe하지 않다. 조금 더 Type Safe한 basePackageClasses가 존재한다. basePackage가 없다면 Application 시작 지점부터(해당 패키지와 그 이하에 있는 패키지까지) 스캔을 시작한다. Filter - 어떤 Annotation을...

Spring - Mock을 활용한 테스트

Mock을 활용한 테스트 @Repository public class BookRepository { public Book save(Book book) { return null; } } @Service public class Book Service { private BookRepository bookRepository; public BookService(BookRepository bookRepository) { this.bookRepository = bookRepository; } } 위와 같이 의존성이 있는 객체에...