본문 바로가기

spring/spring

(12)
Step03_MyBatis (aspect) AuthAspect.java package com.gura.step03.aspect; import java.net.URLEncoder; import javax.servlet.http.HttpServletRequest; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; import org.springframework.web.servlet.ModelAndView; /* * -Aspectj Expression * * 1. execution(*..
Step03_MyBatis (typeAliases) Configuration typeAliases를 사용해서 자주 사용하는 type 의 별칭을 등록해 놓고 Mapper xml에서 사용할 수 있다. 기존 MemberMapper.xml INSERT INTO member (num, name, addr) VALUES(member_seq.NEXTVAL, #{name}, #{addr}) UPDATE member SET name=#{name}, addr=#{addr} WHERE num=#{num} DELETE FROM member WHERE num=#{num} SELECT num, name, addr FROM member WHERE num=#{num} SELECT num, name, addr FROM member ORDER BY num ASC 변경된 MemberMap..
스프링 프레임 워크 개념 정리 스프링 프레임 워크의 3대 핵심 개념 1. DI ( Dependency Injection ) 필요한 핵심 의존 객체를 주입 받아서 사용하는 구조 2. IOC ( Invesion Of Controll ) 제어의 역전 객체의 생성과 조립(DI 등등) 관리를 스프링이 실행될때 알아서 동작하는 구조 3. AOP ( Aspect Oriented Programming ) 관점 지향 프로그래밍 핵심 비지니스 로직과는 상관없는 횡단관심사를 따로 작성해 놓고 원하는 위치에 따로 작성된 로직을 설정해서 적용시키는 구조이다. 주로 로그 기록이나, 테스트, 인증(auth) 등의 작업을 할때 사용한다. 예를 들어 다수의 메소드에 핵심 비지니스 로직과는 상관없는 작업을 할때 해당 작업을 따로 만들어 놓고 특정 메소드의 설정 만으..
Step03_MyBatis ( @service ) 컨트롤러에 대한 이해 컨트롤러에서는 dao 를 이용한 비즈니스 로직 혹은 복잡한 비즈니스 로직 처리는 하지 않는게 원칙이다. - 컨트롤러에서 dao 에 의존하고 있다는 것은 바람직한 구조가 아니다. dao 를 활용한 비즈니스 로직처리를 서비스 객체를 이용해서 처리 해야한다. 컨트롤러도 dao 에 의존하지 말고 서비스에 의존하도록 해야 한다. 컨트롤러에서는 클라이언트의 어떤 경로 요청에 대해서 어떤 서비스로 비즈니스 로직을 처리하고 어디로 어떻게 이동해서 응답해야 할지에 대한 작업만 하면 된다. MemberService.java package com.gura.step03.member.service; import org.springframework.web.servlet.ModelAndView; import ..
Step03_MyBatis (ModelAndView, redirect) ModelAndView, redirect 를 설명하기 위하여 기존 MemberController의 @Controller를 해제하고 MemberController2를 만들어 ModelAndView, redirect를 사용하여 코드를 재구성하였다. 기존 MemberController - 상단 @Controller 제거 package com.gura.step03.member.controller; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controll..
Step03_todo list 만들기 1. 패키지 미리 만들기 .todo.dto .todo.dao .todo.controller 2. 클래스, 인터페이스 만들기 TodoDto TodoDao, TodoDaoImpl TodoController 3. TodoMapper.xml Configuration.xml 문서에 TodoMapper.xml 사용할 준비하기 4. /views/todo/ 폴더를 만들고 해당 폴더 안에 list.jsp insertform.jsp insert.jsp delete.jsp updateform.jsp update.jsp 5. 처리할 요청 /todo/list.do, /todo/insertform.do, /todo/insert.do, /todo/delete.do, /todo/updateform.do, /todo/update.do
Step03_MyBatis (Member 회원목록) 초기설정 및 HomeController HomeController package com.gura.step03; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HomeController { // /home.do 요청이 왔을때 동작하는 컨트롤러 메소드 @RequestMapping("/home.do") public String home(Htt..
Step02_RequestParam @ 어노테이션을 많이 사용할 에정이다. 어노테이션에 대한 이해 - 어노테이션을 붙은 클래스는 그 모양 그대로 사용되지 않고 런타임시에 변형되어서 사용된다. 특정 클래스를 상속받기도 하고, 특정 인터페이스를 구현하기도 하고 없던 메소드가 만들어지기도 하고, 없던 필드가 추가 되기도 하는 등의 작업이 자동화 되어 있다. RequestMethod form으로 보낼 수 있는 방법은 post, get이 있으며 ajax를 활용하여 다른 방법도 있긴하다. home.jsp 인덱스 페이지 입니다. 전송 전송 post 방식 요청 추가 get 방식 요청 추가 회원 추가하러 가기 공지사항 ${tmp } HomeController package com.gura.step02; import java.util.ArrayList; i..