본문 바로가기

java13

[12] 스프링 프레임워크 핵심 - SPEL, Null Safety 해당 글은 백기선의 스프링 프레임워크 핵심 강좌를 듣고 정리한 것입니다. SPEL SPEL은 객체 그래프를 조회하고 조작하는 기능을 제공합니다. Expression Language 의 기능 및 메소드 호출, 문자열 템플릿 기능을 제공해야 하는 경우에 사용됩니다. @Value("#{1 + 1}") int value; @Value("#{'hello ' + 'world'}") String greeting; @Value("#{1 eq 1}") boolean trueOrFalse; 다음과 같이, Value annotation의 String 값에 표현식으로 넣을 수 있습니다. 헷갈리는 부분은 # 와 $의 차이인데요 #{..}는 Spel 문법으로, property placeholder syntax도 Spel 문법 내.. 2020. 12. 16.
[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.