본문 바로가기
목차
Spring

Spring MVC (스프링 웹 MVC) 강의 21 - 서비스 객체 사용하기

by 지각생 2022. 1. 6.
728x90

데이터 베이스 연결하기 위한 라이브러리 설정


<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc10 -->
<dependency>
    <groupId>com.oracle.database.jdbc</groupId>
    <artifactId>ojdbc10</artifactId>
    <version>19.7.0.0</version>
</dependency>


드라이버 다운 받은 것임

 

NoticeService.java 개체를 어떻게 생성할거냐?

 

이렇게 생성하기보단 스프링스럽게 해보자

 

스프링은 기본적으로 DI기능 제공한다.

IOC컨테이너는 전역 객체 보따리라고 생각하면 된다.

요점은 이 보따리 속 객체를 컨트롤러에서 어떻게 사용하는지 알아보는 것.

 

<bean class="com.newlecture.web.service.NoticeService" />

객체 만든걸 DI할 것임.

컨트롤러가 쓸 거다.

 

여기 태그 닫은 부분을 열어서 인젝션하자

이 프로퍼티는 setter가 있어야 한다.

com.newlecture.web.controller.notice.ListController가 가지고 있는 setSerivce()라는 메서드라는 의미의

name="service"

ref="?"에는 id값이 들어가야한다.

현재는 미작성된 상태

커서에 이름 넣을것임

id="noticeService" 추가

 

위에 name="service"였던 부분을

name="noticeService" 로 수정하고

ref="noticeService" 추가  (위에 id="noticeService" 참고하란 의미)

 

컨트롤러에 가서 setter 추가해 주자


package com.newlecture.web.controller.notice;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.Controller;

import com.newlecture.web.entity.Notice;
import com.newlecture.web.service.NoticeService;

public class ListController implements Controller {

private NoticeService noticeService;


public void setNoticeService(NoticeService noticeService) {
this.noticeService = noticeService;
}



@Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {

ModelAndView mv = new ModelAndView("notice.list");
//mv.setViewName("/WEB-INF/view/notice/list.jsp");
List<Notice> list = noticeService.getList(1, "TITLE","");
mv.addObject("list", list);

return mv;
}
}


이거만 남기고 테이블  <tr>나머지 지움

jstl 받아둔게 있는걸 확인하고

태그라이브러리 추가

Notice.java의 getId, getTitle등을 활용하여 EL작성

 

items="${list}"

로 변경

출처:

https://www.youtube.com/watch?v=hDwlM0tmgKs&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=47 

 

728x90

댓글