💐 Spring/Spring 핵심 기술

💐 Spring/Spring 핵심 기술

19. Null-safety

스프링 프레임워크 5에 추가된 Null 관련 애노테이션 org.springframework.lang.* @NonNull @Nullable @NonNullApi (패키지 레벨 설정) @NonNullField (패키지 레벨 설정) 목적 (툴의 지원을 받아) 컴파일 시점에 최대한 NPE(NullPointerException)을 방지하는 것 null 체크를 하지 않아서 생기는 NPE 방지 @NonNull org.springframework.lang.NonNull 사용 메소드 파라미터에 붙이는 경우 -> null 값이 들어오지 못하도록 방지 @Service public class EventService { @NonNull // (1) public String createEvent(@NonNull String na..

💐 Spring/Spring 핵심 기술

18. 스프링 AOP : @AOP

애노테이션 기반의 스프링 @AOP 의존성 추가 org.sringframework.boot spring-boot-starter-aop Aspect 정의 @Aspect 빈으로 등록해야 하니까 (컴포넌트 스캔을 사용한다면) @Component도 추가 포인트컷 정의 @PointCut(표현식) 주요 표현식 execution @Service public class SimpleEventService implements EventService{ @Override public void createEvent() { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("create an Eve..

💐 Spring/Spring 핵심 기술

17. 스프링 AOP : 프록시 기반 AOP

스프링 AOP 특징 프록시 기반의 AOP 구현체 스프링 빈에만 AOP를 적용할 수 있다. 모든 AOP 기능을 제공하는 것이 목적이 아니라, 스프링 IoC와 연동하여 엔터프라이즈 애플리케이션에서 가장 흔한 문제(중복코드, 프록시 클래스를 만드는 비용과 수고, 객체들 간 관계 복잡 등등)에 대한 해결책을 제공하는 것이 목적. 프록시 패턴 (기존 코드 변경 없이) 접근 제어 또는 부가 기능 추가 프록시 패턴을 이용하여 기존 코드를 건드리지 않고 성능을 측정해보겠다. @Component public class AppRunner implements ApplicationRunner { @Autowired EventService eventService; //interface가 있다면 interface타입으로 받는게 ..

💐 Spring/Spring 핵심 기술

16. 스프링 AOP : 개념 소개

Aspect-oriented Programming (AOP)은 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법. 흩어진 관심사 (Crosscutting *Concerns) *Concerns : 비슷한 코드, 비슷한 호출 등등. AOP를 적용 하면? Aspect로 흩어진 것들을 한곳으로 모은다. AOP 주요 개념 Aspect 와 Target Advice Join point 과 Pointcut Aspect : 흩어진 관심사를 한곳으로 모듈화 한 것. Advice : 어떤 일을 해야 하는지에 대한 정보. Join point : 생성자 호출하기 직전, 생성자를 호출했을때, 필드에서 값을 가져갔을때...등등 여러가지 합류점. Pointcut: A라는 클래스에 b라는 메소드를 ..

💐 Spring/Spring 핵심 기술

15. SpEL ( 스프링 Expression Language)

스프링 EL​이란? 스프링 프로젝트 전반에 걸쳐 필요로 하다보니까, Unified EL 에 메소드 호출 기능과, 문자열 템플릿 기능을 추가하여 스프링이 SpEL을 개발하게 된것이다. 객체 그래프를 조회하고 조작하는 기능을 제공한다. Unified EL​과 비슷하지만, 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만, SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 EL로 만들었다. 스프링 3.0 부터 지원. SpEL 구성 ExpressionParser expressionParser = new SpelExpressionParser(); Expression expression = expressionParser...

💐 Spring/Spring 핵심 기술

14. 데이터 바인딩 추상화 : Converter 와 Formatter

Converter S 타입을 T 타입으로 변환할 수 있는 매우 일반적인 변환기 상태 정보 없음 == Stateless = 쓰레드세이프 public class EventConverter { public static class StringToEventConverter implements Converter{ @Override public Event convert(String source) { return new Event(Integer.parseInt(source)); }//String에서 Event로 Event/Constructor에 source를 넘긴다. } public static class EventToString implements Converter{ @Override public String con..

iseunghan
'💐 Spring/Spring 핵심 기술' 카테고리의 글 목록