2016년 11월 1일 화요일

70day / Framework / springMVC

http://www.javajigi.net
SpringMVC
[출처] SpringMVC 환경설정 (비공개 카페)




여태까지는 Servlet / JSP배우면서 Model2 MVC를 흉내내거나
spring넘어와서도 Java Project 생성 후 Model2 MVC를 흉내내는 수준의 작업이였다.


  • 환경설정 및 개발단계
1. spring library 를 maven으로 추가  
2. log4j 설정파일확인 (선택적)
3. web.xml에서 
    springframework의 DispatcherServlet 설정 추가 
    ( servlet-name 과 servlet-class , url-pattern ) 
    [servlet name]-servlet.xml 로 springmvc framework 설정
    파일을 기본적을 찾게 된다. 
 4. url-pattern 을 *.do 형태로 지정하여 
  .do로 마치는 모든 요청을 spring의 DispatcherServlet이 처리
  하도록 설정한다. 
5. springmvc 설정파일 
 1) HandlerMapping 등록 
 2) ViewResolver 등록 
 3) 사용될 컨트롤러를 등록 



이동할 URL을 *.do로 설정하여 끝나는 부분이 do인 url을 걸러낸다
* web.xml *
<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
cs

.do로 들어온 url을 CustomerController로 보낸다

* dispatcher-servlet.xml *
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
HandlerMapping 등록
<bean id="handlerMapping" 
class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
viewResolver 등록
<bean id="viewResolver" 
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/views/" />
    <property name="suffix" value=".jsp"/>
</bean>

<bean id="methodNameResolver" 
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName" value="command"/>
</bean>
<bean id="customerDAO" class="model.CustomerDAOImpl"> </bean>
<bean id="customerService" class="model.CustomerServiceImpl">
    <constructor-arg ref="customerDAO"/>
</bean>
사용될 컨트롤러를 등록 
<bean id="/customer.do" class="controller.CustomerController">
    <constructor-arg ref="customerService"/>
    <property name="methodNameResolver"  ref="methodNameResolver"/>
</bean>
</beans>
cs

위처럼 xml을 설정한 후 id를 검색한다.
 * index.jsp *
<form action = "customer.do">
<input type = "hidden" name = "command" value = "findCustomerById">
아이디 <input type = "text" name = "id">
         <input type = "submit" value = "검색">
</form>
cs

Controller -> Service -> DAO -> Controller -> View로 진행된다
* STEP1 -> find_ok.jsp or find_fail.jsp *
public class CustomerController extends MultiActionController {
    private CustomerService customerService;
    public CustomerController(CustomerService customerService) {
        super();
        this.customerService = customerService;
    }
    public ModelAndView findCustomerById
    (HttpServletRequest request, HttpServletResponse response) {
        String id = request.getParameter("id");
        CustomerVO cvo = customerService.findCustomerById(id);
        if (cvo == null)
            return new ModelAndView("find_fail");
        else
            return new ModelAndView("find_ok""cvo", cvo);
    }
}
* STEP2 *
public class CustomerServiceImpl implements CustomerService {
    private CustomerDAO customerDAO;    
    public CustomerServiceImpl(CustomerDAO customerDAO) {
        super();
        this.customerDAO = customerDAO;
    }
    @Override
    public CustomerVO findCustomerById(String id){
        return customerDAO.findCustomerById(id);
    }
}
* STEP3 -> STEP1 *
(DB없이 test)
public class CustomerDAOImpl implements CustomerDAO {
    @Override
    public CustomerVO findCustomerById(String id) {
        CustomerVO vo = null;
        if (id.equals("java"))
            vo = new CustomerVO(id, "손재만""판교");
        return vo;
    }
}
cs


아직도 XML 사용방법에 대해서는 어리둥절하고 있지만
확실히 springMVC 구조가 잡히는게 눈에 보이고있다.

Related Posts:

  • 72day / Framework / springMVC project springMVC에서 배운 것들을 토대로 응용하도록 하였다. 여태 몰랐는 데..........역시 강사님이 또 숨기고 뒤늦게 알려주신 게 있었다. spring legacy project로 Spring MVC web application development p… Read More
  • 73day / Framework / springMVC 회원관리 Project springMVC 회원관리 시스템 주요업무 기능적 요구사항 아이디로 회원검색 주소로 회원검색 로그인 카페 로그아웃 회원수정 회원가입(아이디 중복확인 Ajax적용)  비기능적 요구사항 인증여부에 따른 화면 제공 카페 / 로그아웃 / 회원수정 부분… Read More
  • 71day / Framework / spring Framework Annotation http://www.skywayperspectives.org spring Annotation활용 강사님은 언제나 동작원리를 강조하신다. 복붙을 하던 API를 퍼오던 그 속에 동작원리를 알고는 있어야 된다는 것이다! 때문에 어제 springMVC를 배울때는 xm… Read More
  • 74day / Framework / springMVC Interceptor & JUnit Interceptor & JUnit 말로만 듣던 TDD와 Interceptor를 활용해보았다 TDD 테스트 주도 개발(Test-Driven Development, TDD) 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 JUni… Read More
  • 70day / Framework / springMVC http://www.javajigi.net SpringMVC [출처] SpringMVC 환경설정 (비공개 카페) 여태까지는 Servlet / JSP배우면서 Model2 MVC를 흉내내거나 spring넘어와서도 Jav… Read More

0 개의 댓글:

댓글 쓰기