Category

    [Spring] AOP와 Spring AOP

    [Spring] AOP와 Spring AOP

    AOP Aspect-oriendted Programming OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법 AOP 주요 개념 Aspect와 Target Advice Join point와 Pointcut AOP 구현체 자바 AspectJ Spring AOP AOP 적용 방법 컴파일 로드 타임 런타임 Spring AOP 프록시 기반의 AOP 구현체 스프링 빈에만 AOP를 적용할 수 있다. 모든 AOP 기능을 제공하는 것이 목적이 아니라, 스프링 IoC와 연동하여 엔터프라이즈 어플리케이션에서 가장 흔한 문제에 대한 해결책을 제공하는 것이 목적이다. 프록시 패턴 기존 코드 변경 없이 접근 제어 또는 부가 기능 추가를 할 수 있다. Spring AOP Spring IoC 컨테..

    [Spring] SpEL

    SpEL Spring Expression Language 객체 그래프를 조회하고 조작하는 기능을 제공한다. Unified EL과 비슷하지만 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다. OGNL, MVEL, JBOss EL 등 자바에서 사용할 수 있는 여러 EL이 있지만 SpEL은 모든 스프링 프로젝트 전반에 걸쳐 사용할 EL로 만들었다. 스프링 3.0 부터 지원한다. SpEL 구성 ExpressionParser parser = new SpelExpressionParser() StandardEvaluationContext context = new StandardEvaluationContext(bean) Expression expression = parser.parseExpression("SpE..

    [Spring] Converter와 Fomatter

    [Spring] Converter와 Fomatter

    Converter S 타입을 T타입으로 변환할 수 잇는 매우 일반적인 변환기 상태 정보 없음 == Stateless == 쓰레드-세이프 ConverterRegistry에 등록해서 사용한다. Formatter PropertyEdito 대체제 Object와 String간의 변환을 담당한다. 문자열을 Locale에 따라 다국화하는 기능도 제공한다. (optional) FormatterResgistry에 등록해서 사용한다. ConversionService 실제 변환 작업은 이 인터페이스를 통해서 쓰레드-세이프하게 사용할 수 있다. Spring MVC, 빈(value) 설정, SpEL 에서 사용한다. DefaultFormattingConversionService FormatterRegistry Conversion..

    [Spring] 데이터바인딩과 PropertyEditor

    [Spring] 데이터바인딩과 PropertyEditor

    데이터 바인딩 기술적인 관점 프로퍼티 값을 타겟 객체에 설정하는 기능 사용자 관점 사용자 입력값을 어플리케이션 도메인 모델에 동적으로 변환해 넣어주는 기능 입력값은 대부분 문자열인데, 그 값을 객체가 가지고 있는 int, long, Boolean, Date 등 심지어 Event, Book 같은 도메인 타입으로도 변환해서 넣어주는 기능 PropertyEditor org.spingframework.validation.DataBinder 스프링 3.0 이전까지 DataBinder가 변환 작업 시 사용하던 인터페이스 쓰레드-세이프 하지 않는다. 상태 정보를 저장하고 있다. 따라서 싱글톤 빈으로 등록해서 사용하면 문제가 될 수 있다. Object와 String간의 변환만 할 수 있어 사용 범위가 제한적이다.