웹프로그래밍/spring
-
스프링4.0 - @Valid / @InitBinder 검증 & 글로벌 Validator웹프로그래밍/spring 2018. 7. 17. 23:03
@Valid / @InitBinder 검증 JSR 303 표준에 정의된 @Valid으로 커맨드 객체를 검사하는 코드를 직접 호출하지 않고 스프링 프레임워크가 호출하도록 설정한다. 1. 의존 설정 추가 -pom.xml javax.validationvalidation-api1.0.0.GA 2.컨트롤러 클래스에서 @Valid / @InitBinder 사용 import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.validation.Valid; import org.springframework.stereotype.Controller;import org.springframework.validation...
-
스프링4.0 - Validator / Errors / BindingResult로 객체 검증 : 에러 메시지웹프로그래밍/spring 2018. 7. 17. 22:38
Validator / Errors / BindingResult로 객체 검증 유효성 검사?웹 브라우저 : 자바스크립트로 웹서버에 전송하기 전 검사한다. 웹 서버: 전달 받은 요청 파라미터를 검사한다. 스프링의 유효성 검사org.springframework.validation.Validator 인터페이스는 스프링이 제공하는 객체 검증, 에러 메세지 지원 등의 기능을 사용할 수 있다.특히 컨트롤러에서 커맨드 객체의 값을 검증할때 Validator가 유용하다.유효성 검증을 수행할 클래스를 만들고 Validator 인터페이스를 구현한다. 그리고 아래 2개 메서드를 오버라이딩한다. -Validator 인터페이스supports() - 객체의 타입 검증validate() - 자바빈의 속성 값 검증 위 메서드에서 val..
-
스프링4.0 - AOP : @Aspect 기반웹프로그래밍/spring 2018. 7. 16. 21:10
XML 스키마 설정 대신에 @Aspect 어노테이션을 클래스에 적용한다. 1. Before Adviceimport org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before; @Aspectpublic class ArticleCacheAspect { private Map cache =new HashMap();@Around("execution(public * *..ReadArticleService.*(..))")public Article cache(ProceedingJoinPoint joinPoint) throws Throwable {Integer id = (Integer) joinPoint.getArgs()[0];Article ..
-
스프링4.0 - AOP 기초웹프로그래밍/spring 2018. 7. 15. 19:23
AOP란?어플리케이션의 공통 관심 사항과 핵심 관심 사항을 기준으로 프로그래밍 하므로써 공통 모듈을 여러 코드에 쉽게 적용하는 것 핵심 로직에서 공통 기능을 직접 호출 하지는 않는다.공통 기능은 컴파일하거나 클래스를 로딩할때, 또는 클래스의 객체를 생성할때 AOP가 적용된다. 즉, 핵심 로직 구현 코드에 공통 기능이 삽입된다. ※spring API 문서:https://docs.spring.io/spring-framework/docs/2.0.x/reference/aop.html AOP 용어Joinpoint - 실행지점, 즉 Advice가 적용될 메소드 Pointcut - JoinPoint와 Advice를 연결해주는 설명어. 예를들어, Pointcut이 가리키는 특정 이름의 메소드에 Advice가 적용된다...
-
스프링 4.0 - DI : 의존성주입 자동 연결웹프로그래밍/spring 2018. 7. 10. 21:13
어노테이션을 이용한 객체 의존 자동연결스프링 빈 객체의 간단한 의존 관계 설정을 아래 어노테이션으로 간단히 한다.먼저, XML 설정 파일에 아래 코드로 전처리기 빈을 등록한다. ※위 코드가 등록해주는 자동 연결과 관련 된 스프링 빈org.springframework.beans.factory.AutowiredAnnotationBeanPostProcessororg.springframework.beans.factory.annotation.QuailifierAnnotationAutowireCandidateResolverorg.springframework.context.annotation.CommonAnnotationBeanPostProcessor @Autowired - org.springframework.bea..
-
스프링 4.0 - DI(Dependency Injection) : 의존성 주입 - 수동 설정웹프로그래밍/spring 2018. 7. 10. 13:03
의존(Dependency)클래스에서 어떤 기능을 실행하기 위해서 또 다른 클래스(또는 타입)를 필요로 하는 것다수의 클래스에서 의존하는 객체를 직접 생성하는 방식은 개발 효율을 떨어트린다. DI(의존성 주입) : 의존 객체를 외부(Assembler)에서 조립의존성 주입이란? 클래스에서 의존 객체를 직접 생성하지 않고 외부로부터 전달 받는 것.조립기에서 B객체를 생성해서 A클래스에 연결(의존성 주입)한다. 스프링 프레임 워크의 DI와 동일하다.스프링 DI에서 의존 객체를 전달하는 방식은 생성자 방식과 프로퍼티 설정 방식으로 나뉜다.조립기 클래스 생성자 코드에서 필요한 객체를 생성한다. 조립기 클래스의 생성자에서 의존할 객체를 생성하고 그 객체를 리턴하는 메소드를 포함한다.다른 클래스에서 조립기 클래스의 객..
-
스프링3.0 - Database 연동하기웹프로그래밍/spring 2018. 7. 3. 23:07
JDBC API를 이용해서 Database에 접근할 수 있으며, iBatis나 Hibernate, JPA와 같은 ORM Framework를 이용해서 Database를 연동할 수도 있다. SPRING은 JDBC를 비롯하여 ORM Framework를 직접적으로 지원하고 있기 때문에 약간의 노력만 들이면 JDBC뿐만 아니라 다른 ORM Framework를 SPRING과 간단하게 연동할 수 있다. : SPRING은 JDBC, Hibernate, iBatis 등의 다양한 기술을 이용해서 손쉽게 DAO Class를 구현할 수 있도록 지원하고 있는데, 지원하는 내용은 다음과 같다. - 템플릿 Class를 통한 데이터 접근 지원 - 의미 있는 예외 Class 제공 - Transaction 처리 예를 들어, JDBC를 ..