열심히 끝까지

디바이스 융합 자바(Java) day70 - Spring에 @(어노테이션) 걸기 본문

디바이스 융합 자바(Java)기반 풀스택 개발자 양성과정(수업내용)

디바이스 융합 자바(Java) day70 - Spring에 @(어노테이션) 걸기

노유림 2022. 9. 21. 11:45

[오늘 수업]
직접 @을 걸어서 연결해보기

1. 스프링 컨테이너가 내가 설정한 패키지 범위를 scan 할 수 있도록
    Namespaces에서 context 추가


2. @을 달 수 있는 것은 controller객체에만 사용할 수 있기 때문에 
    Component 달기


@Component("loginController") : 일반 객체화랑 똑같음
   >> @Repository, @Service 와 마찬가지로
           @Controller로 달 수 있음
                  DS()이 인식하는 C객체로 설정해 줌
                  implements 필요 없음
                  => 오버라이딩 강제 필요 없음
                  => 완전한 POJO 완성
         >> 완전한 시그니쳐가 되어 이름 변경 가능
             ex ) public void selectOneMember(HttpServletRequest request)
                     : 이름, output, 받아오는 인자 변경 가능


 >> 이로써 <bean id="login" class="com.ryo.biz.controller.LoginController"/> 진행 완료

 

다음 진행할 과정...
     ex ) 스프링 첫 날 실습
           Phone 워치 쓰려고 
            Watch 인터페이스 제작

3. <prop key="/login.do">login</prop> 진행해볼 것
      : @RequestMapping 넣어야 함
          = 어떤 사용자의 [요청]에 대해서 무슨 [메서드]를 수행해야 하는지 "연결"
               >> HandlerMapping(HM)의 역할 수행
                    => 하나의 C클래스 내부에 여러 개의 메서드를 작성할 수 있음
>> @RequestMapping("/login.do")

이렇게도 사용 가능
@RequestMapping(value="/login.do", method=RequestMethod.GET)
@RequestMapping(value="/login.do", method=RequestMethod.POST)

-----------------------------------------

 

- Command 객체 ☆(Spring의 꽃)
        : 스프링 컨테이너가 Command 객체를 생성 
         + 사용자가 입력한 값들을 setter 주입으로 Command 객체에 세팅함
 
경로만 보낼 때는 String만 사용 하면 되지만
ex ) 

public String index() {
		// 로그인 화면을 보여줘!
		// 기본이 포워드 방식
		// 데이터를 넣어서 보낼 때는 그냥 쓰면 됨
		return "login.jsp";
}

---
값을 보내야 할 때는 ModelAndView로 설정해서 보내주어야 함
ex ) 

@RequestMapping(value="/login.do", method=RequestMethod.POST)
public ModelAndView selectOneMember(MemberVO mVO, MemberDAO mDAO, ModelAndView mav) {
	System.out.println("로그 : 로그인컨트롤러 들어옴");
	mVO = mDAO.selectOneMember(mVO);
	if(mVO == null){
		mav.setViewName("login.jsp");
	}
	else {
		mav.addObject("member",mVO);
		mav.setViewName("redirect:main.do");
	}
	return mav;
}

------

>> 새로 요청해야할 때는 redirect 찍어주면 됨

평소의 VR -> 리다이렉트 전달할 값 없음
               -> 포워드 전달할 값 있음
++++++++++++++++++++++++++++++++++
어제의 VR -> 설정을 내가 했고, 이걸 안쓰려고 리다이렉트
               -> 내가 설정한 값을 앞뒤로 붙이려면 포워드

 

만약 project clean이 하고 싶으면

Project > clean > clean할 프로젝트 선택하고 실행