Spring Framework/Spring Core: 70개의 글
파일 업로드 처리 인코딩 타입이 Multipart인 경우 파라미터나 업로드한 파일을 구하려면 전송 데이터를 알맞게 처리해 주어야 한다.스프링은 Multipart 지원 기능을 제공하고 있기 때문에, 이 기능을 이용하면 추가적인 처리없이 Multipart 형식으로 전송된 파라미터와 파일 정보를 쉽게 구할 수 있다. 1. MultipartResolver 설정Multipart 지원 기능을 이용하려면 먼저 MultipartResolver를 스프링 설정 파일에 등록해 주어야 한다. MultipartResolver는 Multipart 형식으로 데이터가 전송된 경우, 해당 데이터를 스프링 MVC에서 사용할 수 있도록변환해준다. 예를 들어, @PathVariable 어노테이션을 이용해서 Multipart로 전송된 파라미..
요청 URI 매칭 클라이언트가 요청한 URL과 @RequestMapping 어노테이션의 값을 이용해서 클라이언트의 요청을 어떤 컨트롤러의 어떤 메서드가 처리할 지가 결정된다.매칭이 어떻게 이루어지는 지 알지 못할 경우 클라이언트의 요청 URL과 매칭되는 메서드를 설정할 수 없기 때문에, 어떻게 매칭이 이루어지는 지 아는 것은 작지만 매우 중요하다.본 절에서는 매칭과 관련된 기본 내용인 경로와 @RequestMapping 어노테이션 간의 관계 그리고 @PathVariable을 이용한 URI 템플릿에 대해서 살펴보자. 1. 전체 경로와 서블릿 기반 경로 매칭 설정 dispatcher org.springframework.web.servlet.DispatcherServlet 1 dispatcher *.do /g..
모델 생성하기 @RequestMapping 어노테이션이 적용된 메서드의 파라미터의 리턴 타입으로 ModelAndView, Model, ModelMap, Map, 커맨드 객체 등을 이용해서 모델을 뷰에 전달하게 된다.본 절에서는 컨트롤러가 이들 클래스를 이용해서 모델을 어떻게 뷰에 전달하는 지 살펴보자. 1. 뷰에 전달되는 모델 데이터@RequestMapping 메서드가 ModelAndView, Model, Map을 리턴하는 경우 이들에 담긴 모델 데이터가 뷰에 전달된다. 또한, 추가로 다음의 항목도 뷰에 함께 모델로 전달된다.- 커맨드 객체- @ModelAttribute 어노테이션이 적용된 메서드가 리턴한 객체- 메서드의 Map, Model, ModelMap 타입의 파라미터를 통해 설정된 모델 impor..
뷰 지정컨트롤러 처리 메서드는 처리 결과를 보여줄 뷰 이름이나 View 객체를 리턴하고, DispatcherServlet은 뷰 이름이나 View 객체를 이용해서 뷰를 생성하게 된다. 뷰 이름은 직접 또는 자동으로 설정할 수 있다. 1. 뷰 이름 명시적 지정: ModelAndView와 String 리턴 타입뷰 이름을 명시적으로 리턴하려면 ModelAndView나 String을 리턴해야 한다. (1) ModelAndView 클래스의 생성자@RequestMapping("/hello.do")public ModelAndView index(){ModelAndView mav = new ModelAndView("hello");...return mav;} (2) setViewName() 메서드@RequestMapping..
컨트롤러 메서드의 파라미터 타입 컨트롤러 @RequestMapping 어노테이션이 적용된 메서드는 커맨드 클래스뿐만 아니라 HttpServletRequest, HttpSession, Locale 등 웹 어플리케이션과 관련된 다양한 타입의 파라미터를 가질 수 있는데, 전달 가능한 파라미터 타입은 다음과 같다. 1. @RequestParam 어노테이션을 이용한 파라미터 매핑컨트롤러를 구현하면서 가장 많이 사용되는 어노테이션이 바로 @RequestParam 어노테이션이다. @RequestParam 어노테이션은 HTTP 요청 파라미터를 메서드의 파라미터로 전달받을 때 사용된다. @RequestParam 어노테이션과 HTTP 요청 파라미터의 관계는 다음과 같다. 첫번째 파라미터인 userName은 name 요청 ..
HTML 폼과 자바빈 객체 스프링 MVC는 HTML 폼에 입력한 데이터를 자바빈 객체를 이용해서 전달 받을 수 있도록 하고 있다.예를 들어 HTML 폼의 항목과 이름과 자바빈 클래스의 프로퍼티 이름이 일치할 경우 폼에 입력한 값을 해당 자바빈 클래스의 프로퍼티 값으로 설정해주는 기능을 제공하고 있다. 제목: 내용: public class NewArticleCommand{private String title;private String content;private int parentId; // 입력 항목의 이름과 일치하는 프로퍼티에 값이 저장public void setTitle(String tilte){this.title;}public void setContent(String content){this.con..
자바 코드 기반 설정 Spring JavaConfig 프로젝트는 XML이 아닌 자바 코드를 이용해서 컨테이너를 설정할 수 있는 기능을 제공하는 프로젝트로서, 이를 사용하면 XML이 아닌 자바 코드를 이용해서 생성할 빈 객체와각 빈 간의 연관 등을 처리하게 된다. 1. @Configuration 어노테이션과 @Bean 어노테이션을 이용한 코드 기반 설정org.springframework.context.annoatation 패키지의 @Configuration 어노테이션과 @Bean 어노테이션을 이용해서 스프링 컨테이너에 새로운 빈 객체를 제공할 수 있다. 다음은 자바 코드를 이용해서 새로운 빈 객체를 스프링 컨테이너에 제공하는 클래스의 예를 보여주고 있다.import org.springframework.co..
어노테이션 기반 설정 1. XML에서의 설정 ... 태그는 어노테이션과 관련해서 다음의 BeanPostProcessor를 등록해 준다.- RequredAnnotationBeanPostProcessor: @Required 어노테이션 처리- AutowiredAnnotationBeanPostProcessor:@Autiwired 어노테이션 처리- CommonAnnotationBeanPostProcessor: @Ressource, @PostConstruct, @PreDestroy 어노테이션 처리- ConfigurationClassProcessor: @Configuration 어노테이션 처리 2. @Autowired 어노테이션을 이용한 자동 설정org.springframework.beans.factory.annot..
외부 설정 프로퍼티 1. 외부 설정 프로퍼티PropertyPlaceholderConfigurer 클래스를 빈으로 등록하면 외부의 프로퍼티에 저장된 정보를 스프링 설정 파일에서 사용할 수 있다.예를 들어, 다음과 같은 프로퍼티 파일을 작성했다고 하자.jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://dbserver:3306/springbookjdbc.username=springbookjdbc.password=springbook위 프로퍼티의 파일의 정보를 스프링 설정 파일에서 사용하고 싶다면, 다음과 같이 PropertyPlaceholderConfigurer 클래스를 빈으로 등록한 뒤, 프로퍼티의 이름을 파일에서 사용하면 된다. classpath:config/..
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..