DAO 의 작업에서 가장 까다로운 작업은 데이터베이스와의 연결 후 연결을 close()하는 방법이다. 하지만 Spring-MyBatis 에서는 이를 처리해 줄수 있는 SqlSessionTemplate를 제공해줘서 훨씬 간단하게 처리할수 있다. mybatis-spring에서 제공하는 SqlSessionTemplate은 MyBatis의 SqlSession 인터페이스를 구현한 클래스로 기본적인 트랜잭션의 관리나 쓰레드 처리의 안정성 등을 보장해 주고, 데이터베이스의 연결과 종료를 책임집니다. SqlSessionTemplate은 SqlSessionFactory를 생성자로 주입해서 설정합니당.
MyBatis를 사용하려면 Spring에서는 XML Mapper파일을 인식해야만 정상적인 동작이 가능합니다. 그래서 우리는 root-context.xml 안의 내용을 조금 수정해줘서 자동적으로 Mapper파일들을 가져올 수 있게 합니당. 위에 코드는 mapperLocations 라는 속성을 추가하고, 작성된 mappers폴더 내의 파일의 이름이 'Mapper.xml'로 끝나면 자동으로 인식시켜주는 코드입니다. 작성된 코드를 붙여넣는것이 아니고 상황에 맞춰서 폴더이름이나 경로를 바꿀수 있어야 할거같다.
Spring에서는 요즘 프로그래밍에서 많이 사용된다는 JSON 데이터에 대한 처리도 간단하게 할수 있게 도와준다. 일단 시작하기전에 pom.xml을 이용해서 jackson-databind 라이브러리를 추가해야 합니다. com.fasterxml.jackson.core jackson-databind 2.8.4 추가했으면 우리는 @ResponseBody만 이용 해주면 됩니다. @Controller public class Controller { @RequestMapping("/doJSON") public @ResponseBody ProductVO doJSON { ProductVO vo = new ProductVO("샘플상품", 3000); return vo; } } 이런식으로만 입력해도 JSON데이터 처리가 끝..
컨트롤러를 처리할 때 가끔 다른 경로를 호출 해야 하는 경우가 생기는 데 이 때 Spring에서는 'redirect:'를 지원해주고 있습니다. 리다이렉트를 하는 경우 RedirectAttributes라는 클래스를 파라미터로 같이 사용하게 되면 리다이렉트 시점에 원하는 데이터를 임시로추가해서 넘기는 작업이 가능합니다. 바로 예제 @Controller public class Controller { private static final Logger logger = LoggerFactory.getLogger(Controller.class); @RequestMapping("/doE") // /doE이 호출 됬을 경우 public String doE(RedirectAttributes rttr) { // Redire..
그럼 이번에는 return 타입이 만들어져 있는 경우도 한번 공부 해봤다. 만들어져 있어야 되기 때문에 vo부터 생성한다. vo 작성 public class ProductVO { private String name; // 상품명 private double price; // 가격 // 생성자와 set,get 출력을 위한 toString까지 생성해준다. public ProductVO(String name, double price) { super(); this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public dou..
리턴 타입이 String인 경우라면 결과는 'String+jsp' 파일을 실행 하게 됩니다. 간단한 예제 @Controller // 클래스를 컨트롤러로 사용한다. public class Controller { private static final Logger logger = LoggerFactory.getLogger(Controller.class); @RequestMapping("doC") public String doC(@ModelAttribute("msg") String msg) { // String타입의 msg를 파라미터로 넘겨준다. logger.info("doC called ..............."); return "result"; // 결과값은 result.jsp로 보내준다. } } 그럼 ..
스프링 MVC에서 주로 사용하는 어노테이션 (Annotation) @Controller 스프링 MVC의 컨트롤러 객체임을 명시하는 어노테이션 @RequestMapping 특정 URI에 매칭되는 클래스나 메소드임을 명시하는 어노테이션 @RequestParam 요청(request)에서 특정한 파라미터의 값을 찾아낼 때 사용하는 어노테이션 @RequestHeader 요청(request)에서 특정 HTTP 헤더 정보를 추출할 때 사용 @PathVariable 현재의 URI에서 원하는 정보를 추출할 때 사용하는 어노테이션 @CookieValue 현재 사용자의 쿠키가 존재하는 경우 쿠키의 이름을 이용해서 쿠키의 값을 추출 @ModelAttribute 자동으로 해당 객체를 뷰까지 전달하도록 만드는 어노테이션 @Ses..