본문 바로가기

전체보기141

[9] 스프링 프레임워크 핵심 - ApplicationEventPublisher, ResourceLoader ApplicationEventPublisher ApplicationContext가 상속받는 또다른 인터페이스인 ApplicationEventPublisher 를 소개하겠습니다. 이 인터페이스는 옵저버 패턴의 구현체로 이벤트 기반의 프로그래밍을 할 때 유용합니다. 스프링 4.2 이전의 경우 이벤트를 발생시키기 위해서 이벤트 클래스를 선언하되 ApplicationEvent 를 상속하여 생성자를 오버라이딩 합니다. public class MyEvent extends ApplicationEvent { public MyEvent(Object source) { super(source); } } 이 이벤트는 Bean으로 등록되지 않고, 원하는 정보를 담아서 전달해주는 매개라고 생각하면 됩니다. 이벤트를 발생시키는 지.. 2020. 12. 14.
[8] 스프링 프레임워크 핵심 - MessageSource applicationContext가 가지고 있는 MessageSource 기능을 알아보겠습니다. MessageSource는 i18n, 국제화와 관련된 기능입니다. 이 기능또한 ApplicationContext 에 넣어놓아 국제화에 대한 기능을 수행 할 수 있습니다. ApplicationContext.getMessage 메소드를 이용해서 메시지 소스를 가져올 수 있는데요 그럼 메세지를 어떤 방식으로 정의를 해야하냐면 스프링 부트를 사용한다면 별다른 설정 필요없이 messages.properties 로 정의해두면 됩니다. resources 폴더에 다음과 같이 messages.properties와 messages_ko_KR.properties 를 생성합니다. messages_en_US.properties엔 예.. 2020. 12. 14.
[7] 스프링 프레임워크 핵심 - Environment, Profile, Property ApplicationContext 가 가진 기능이 BeanFactory 외에 여러가지 있습니다. 그 중 EnvironmentCapable 이 제공하는 Profile 과 Property 기능을 살펴보겠습니다. Profile Profile은 Bean들의 묶음으로, 어떤 환경입니다. 테스트 환경, 프로덕션 환경이 구분된 대상들을 의미합니다. 각각의 환경에 대해 다른 Bean 을 사용하거나 특정 Bean을 등록하는 경우를 위해 Profile 기능이 도입되었습니다. 해당 기능은 Environment라는 인터페이스를 이용하여 적용할 수 있습니다. public class AppRunner implements ApplicationRunner { @Autowired ApplicationContext ctx; @Overr.. 2020. 12. 5.
[6] 스프링 프레임워크 핵심 - Component Scan, Bean Scope ComponentScan Spring 에서 자동으로 컴포넌트 Scan이 되는 이유는 위 ComponentScan 어노테이션 덕분인데요 Component Scan에서 가장 중요한 값이 basePackages 입니다. basePackage 값이 문자열인데, 이는 type-safe 하지 않아서 클래스를 전달하려면 basePackageClasses를 이용합니다. 컴포넌트 스캔의 시작점은 위 @SpringBootApplication 에서부터 시작합니다. 위 클래스를 담는 패키지와 그 하위 패키지에 명시된 @Component들을 모두 스캔합니다. (밖에 있는 건 안됩니다) 간혹 스프링을 쓰다가 Bean 주입이 잘 안되면 어디서부터 어디까지 Component Scan이 되는지 잘 살펴보아야 합니다 . Componen.. 2020. 12. 5.