Spring Framework/Spring Core: 70개의 글
iBatis 1 iBatis는 자바오브젝트와 SQL문 사이의 자동 매핑 기능을 지원하는 ORM 프레임워크이다.iBatis는 코드 내에서 자바오브젝트만을 이용해 데이터 로직을 작성할 수 있게 해주고, SQL을 별도의 파일로 분리해서 관리하게 해주며, 오브젝트-SQL 사이의 파라미터 매핑 작업을 자동으로 해주기 때문에 많은 인기를 얻고 있는 기술이다.→ JDBC 코드 작성의 불편함을 제거해주고, 도메인 오브젝트나 DTO를 중심으로 개발이 가능하다는 장점이 있다. iBatis의 가장 큰 특징은 SQL을 자바 코드에서 분리해서 별도의 XML 파일 안에 작성하고 관리할 수 있다는 점이다.XML에 담긴 SQL과 자바오브젝트 사이의 매핑은 이름 치환자와 빈 프로퍼티 사이의 매핑을 이용한다.스프링 DataSource ..
web.xml 기본 설정 1. 특정 xml 환경 파일 바라보기DispatherServlet은 클라이언트의 요청을 전달받는 서블릿으로서, 컨트롤러나 뷰와 같은 스프링 MVC의 구성 요소를 이용하여 클라이언트에게 서비스를 제공하게 된다.DispatherServlet의 설정은 웹 어플리케이션의 /WEB-INF/web.xml 파일에 추가하며, 다음과 같이 서블릿과 매핑 정보를 추가하면 DispatherServlet 설정이 완료된다. web.xml 파일은 J2EE 웹 어플리케이션의 기본이 되는 설정 파일이다. DispatcherServlet 클래스를 서블릿으로 정의하며 context root 아래에 확장자 .html 파일로 요청을 하면 모두DispatcherServlet 클래스로 랩핑하도록 정의하고 있다. 이 정..
스프링 MVC 인터페이스 구현 클래스 스프링 MVC를 이용하면, 웹 어플리케이션에서 모델과 뷰, 컨트롤러 사이에 있는 의존관계를 의존 관계 주입 컨테이너인 스프링에서 관리하게 된다.스프링 MVC는 org.springframework.web 패키지와 org.springframework.servlet.패키지에 포함된 클래스를 사용한다. 1. HandlerMapping 인터페이스 구현 클래스(1) org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping웹 요청 URL과 스프링 설정 파일에 정의한 컨트롤러의 name 속성을 맵핑시켜 컨트롤러를 찾는다. 스프링 설정 파일에 HandlerMapping을 전혀 정의하지 않을 때의 기본 클래스BeanNameU..
스프링 MVC 패턴 개요 1. 스프링 MVC 패턴‘MVC(Model View Controller)’란 비즈니스 규칙은 표현하는 도메인 모델(Model)과 프레젠테이션을 표현하는 View를 분리하기 위하여 양측 사이에 컨트롤러를 배치하도록 설계한 디자인 패턴이다.‘스프링 MVC ’ 란 스프링이 제공하는 웹 어플리케이션 구축 전용의 MVC 프레임워크이다. 스프링 MVC를 이용함으로써 웹 어플리케이션의 Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 관리하고 통일된 유연한 웹 어플리케이션을 구축할 수 있다. 2. 스프링 MVC 처리 흐름 스프링 MVC는 스트릿츠 등 웹 어플리케이션 프레임워크와 동일하게 Front Controller 패턴을 채용하고 있다. FrontControl..
AOP 용어 설명 1. Advice언제 공통 관심 기능을 핵심 로직에 적용할 지를 정의하고 있다. 예를 들어, '메서드를 호출하기 전'(언제)에 '트랜잭션을 시작한다.'(공통기능)기능을 적용한다는 것을 정의하고 있다.Target 클래스에 조인 포인트에 삽입되어져 동작(적용할 기능)할 수 있는 코드를 '어드바이스'라 한다.관점으로서 분리되고 실행시 모듈에 위빙된 구체적인 처리를 AOP에서는 Advice라고 한다. Advice를 어디에서 위빙하는지는 뒤에 나오는 PointCut이라는 단위로 정의한다.또한 Advice가 위빙되는 인스턴스를 '대상객체'라고 한다.advice는 Pointcut에서 지정한 Jointpoint에서 실행되어야하는 코드이다. cp.) 스프링의 Advice 타입- Around Advice..
의존관계 주입 1. 참조 Bean 주입하기 (1) 소스상에서 보는 bean 참조를 주입하는 모습1) beans.xml Spring Hello, out.txt 2) MessageBeanImpl.javaimport java.io.IOException;public class MessageBeanImpl implements MessageBean { private String name; private String greeting; private Outputter outputter; public MessageBeanImpl(String name) { this.name = name; } public void setGreeting(String greeting) { this.greeting = greeting; } pu..
response.sendRedirect() 서버가 사용자의 브라우저를 지정한 URL 로 리다이렉트 시킬 수 있는 유용한 도구이다.Spring 에서는 Controller에서 반환 String에 "redirect:" 라는 prefix를 붙여주면 동일한 기능을 수행하게 되어서 Spring에서는 잘 사용하지 않고 있다.그러나 interceptor와 같은 곳에서 redirect 시키도록 하기 위해서는 response.sendRedirect()를 반드시 사용해야한다.response.sendRedirect() 의 문제점response.sendRedirect() 를 사용하면서 주의해야할 점은 저 메서드를 호출한다고 break가 걸리는게 아니라는것이다.다시 설명하자면 throw new Exception() 을 호출하게되..
해당 포스팅에서는 Spring Interceptor에 관하여 알아보고 적용을 하는 포스팅이다.실제 프로젝트 적용 및 예제는 다음 포스팅에서 할 예정이다. 1. Java 인터셉터 구현 - 인터셉터로 사용할 클래스를 하나 만들어준다. - 형태는 아래와 같다. import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; public class ExamInterceptor extends HandlerInterceptorAdapter {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handle) throws Exc..
스프링시큐리티에서 중복로그인 제한은 사실 간단하게 처리할 수 있다. security-context.xml 위 코드처럼 간단히 max-sessions="1" 속성으로 동접을 제한할 수 있다. 하지만, WAS서버가 단일구성이 아니라면 WEB서버 설정에 따라 다른 서버로 세션이 붙게 되면 동접이 가능해지게 된다. 다른전략으로 접근을 해야했다. 로그인은 AuthenticationSuccessHandler 핸들러를 등록하여 사용자가 로그인을 성공할 시 DB에 사용자로그인 상태를 INSERT하였고 로그아웃은 ApplicationListener의 구현체를 등록하여 사용자의 세션종료 브로드캐스팅을 캐치하여 사용자로그인정보를 DELETE하였다. security-context.xml... ... CustomAuthenti..
트랜잭션 격리 레벨 (Isolation Level) 격리 레벨 (Isolation Level)상세 설명TransactionDefinition. ISOLATION_DEFAULT -1 : 개별적인 PlatformTransactionManager를 위한 디폴트 격리 레벨TransactionDefinition. ISOLATION_READ_UNCOMMITTED 1 : 격리 레벨 중 가장 낮은 격리 레벨이다. 이 격리 레벨은 다른 Commit 되지 않은 트랜잭션에 의해 변경된 데이터를 볼 수 있기 때문에 거의 트랜잭션의 기능을 수행하지 않는다.TransactionDefinition. ISOLATION_READ_COMMITTED 2 : 대 개의 데이터베이스에서의 디폴트로 지원하는 격리 레벨이다. 이 격리 레벨은 다른..