스프링: 148개의 글
@RequestBody 어노테이션과 @ReponseBody 어노테이션의 사용 웹 서비스와 REST 방식이 시스템을 구성하는 주요 요소로 자리 잡으면서 웹 시스템간에 XML이나 JSON 등의 형식으로 데이터를 주고 받는 경우가 증가하고 있다.이에 따라 스프링 MVC도 클라이언트에서 전송한 XML 데이터나 JSON 또는 기타 데이터를 컨트롤러에서 DOM 객체나 자바 객체로 변환해서 받을 수있는 기능(수신)을 제공하고 있으며,비슷하게 자바 객체를 XML이나 JSON 또는 기타 형식으로 변환해서 전송할 수 있는 기능(송신)을 제공하고 있다. @RequestBody 어노테이션과 @ResponseBody 어노테이션은 각각 HTTP 요청 몸체를 자바 객체로 변환하고 자바 객체를 HTTP 응답 몸체로 변환하는 데 사용..
파일 업로드 처리 인코딩 타입이 Multipart인 경우 파라미터나 업로드한 파일을 구하려면 전송 데이터를 알맞게 처리해 주어야 한다.스프링은 Multipart 지원 기능을 제공하고 있기 때문에, 이 기능을 이용하면 추가적인 처리없이 Multipart 형식으로 전송된 파라미터와 파일 정보를 쉽게 구할 수 있다. 1. MultipartResolver 설정Multipart 지원 기능을 이용하려면 먼저 MultipartResolver를 스프링 설정 파일에 등록해 주어야 한다. MultipartResolver는 Multipart 형식으로 데이터가 전송된 경우, 해당 데이터를 스프링 MVC에서 사용할 수 있도록변환해준다. 예를 들어, @PathVariable 어노테이션을 이용해서 Multipart로 전송된 파라미..
모델 생성하기 @RequestMapping 어노테이션이 적용된 메서드의 파라미터의 리턴 타입으로 ModelAndView, Model, ModelMap, Map, 커맨드 객체 등을 이용해서 모델을 뷰에 전달하게 된다.본 절에서는 컨트롤러가 이들 클래스를 이용해서 모델을 어떻게 뷰에 전달하는 지 살펴보자. 1. 뷰에 전달되는 모델 데이터@RequestMapping 메서드가 ModelAndView, Model, Map을 리턴하는 경우 이들에 담긴 모델 데이터가 뷰에 전달된다. 또한, 추가로 다음의 항목도 뷰에 함께 모델로 전달된다.- 커맨드 객체- @ModelAttribute 어노테이션이 적용된 메서드가 리턴한 객체- 메서드의 Map, Model, ModelMap 타입의 파라미터를 통해 설정된 모델 impor..
iBatis 2 1. sqlMapConfig.xml: 설정파일iBATIS 의 메인 설정 파일인 SQL Map XML Configuration 파일(이하 sqlMapConfig.xml 설정 파일) 작성과 상세한 옵션 설정에 대해 알아본다. (1) sqlMapConfig.xmlSqlMapClient 설정관련 상세 내역을 제어할 수 있는 메인 설정 파일로 주로 transaction 관리 관련 설정 및 다양한 옵션 설정, Sql Mapping 파일들에 대한 path 설정 등을 포함한다. ..- properties : 표준 java properties (key=value 형태)파일에 대한 연결을 지원하며 설정 파일내에서 ${key} 와 같은 형태로 properties 형태로 외부화 해놓은 실제의 값(여기서는 DB..
스프링 MVC 인터페이스 구현 클래스 스프링 MVC를 이용하면, 웹 어플리케이션에서 모델과 뷰, 컨트롤러 사이에 있는 의존관계를 의존 관계 주입 컨테이너인 스프링에서 관리하게 된다.스프링 MVC는 org.springframework.web 패키지와 org.springframework.servlet.패키지에 포함된 클래스를 사용한다. 1. HandlerMapping 인터페이스 구현 클래스(1) org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping웹 요청 URL과 스프링 설정 파일에 정의한 컨트롤러의 name 속성을 맵핑시켜 컨트롤러를 찾는다. 스프링 설정 파일에 HandlerMapping을 전혀 정의하지 않을 때의 기본 클래스BeanNameU..
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..
Isolation level : 트랜잭션에서 일관성이 없는 데이터를 허용하도록 하는 수준Ø ANSI에서 작성된 SQL-92 표준은 4가지 Transaction Isolation Level 정의ü Read Uncommittedü Read Committedü Repeatable Readü SerializableØ Isolation level 조정은 동시성이 증가되는데 반해 데이터 무결성에 문제가 발생할 수 있고, 데이터의 무결성을 유지하는 데 반해 동시성이 떨어질 수 있다.Ø 레벨이 높아질수록 비용이 높아짐. A. Read Uncommited Isolation Level (레벨 0)- SELECT 문장을 수행하는 경우 해당 데이터에 shared lock이 걸리지 않는 레벨.- 트랜잭션에 처리중인 혹은 아직 ..