Search
Duplicate
moon
sun

의존성 주입 - XML

의존성 주입 - XML

1.
클래스 파일 및 생성
a.
BoardDAO.java
b.
BoardService.java
c.
BoardServiceImpl.java
d.
Board.java
e.
HomeController.java
f.
home.jsp
2.
root-context.xml 에서 빈 등록
a.
BoardDAO.java
b.
BoardServiceImpl.java
i.
BoardDAO 빈을 참조하여, 빈을 등록
3.
의존성 자동 주입

클래스 파일 생성

1.
BoardDAO.java
2.
BoardService.java
3.
BoardServiceImpl.java
4.
Board.java
5.
HomeController.java

BoardDAO.java

package com.aloha.spring.dao; import java.util.ArrayList; import java.util.List; import com.aloha.spring.dto.Board; public class BoardDAO { // 빈으로 등록될 때, 생성될 기본 생성자 정의 public BoardDAO() { } public List<Board> list() { List<Board> boardList = new ArrayList<Board>(); boardList.add(new Board("제목01","작성자01","내용01")); boardList.add(new Board("제목02","작성자02","내용02")); boardList.add(new Board("제목03","작성자03","내용03")); System.out.println("BoardDAO 실행됨..."); return boardList; } }
Java
복사

BoardService.java

package com.aloha.spring.service; import java.util.List; import com.aloha.spring.dto.Board; public interface BoardService { // 게시글 목록 public List<Board> list(); }
Java
복사

BoardServiceImpl.java

package com.aloha.spring.service; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.aloha.spring.dao.BoardDAO; import com.aloha.spring.dto.Board; public class BoardServiceImpl implements BoardService { // BoardServiceImpl --> BoardDAO 에 의존 private BoardDAO boardDAO; // 의존성 자동 주입 // - BoardDAO 빈을 참조하다면, // <bean><constructor-arg ref="boardDAO" /></bean> @Autowired public BoardServiceImpl(BoardDAO boardDAO) { this.boardDAO = boardDAO; } // @Autowired // public BoardServiceImpl(int test) { // this.test = test; // } @Override public List<Board> list() { return boardDAO.list(); } }
Java
복사

Board.java

package com.aloha.spring.dto; public class Board { private String title; private String writer; private String content; public Board() { } public Board(String title, String writer, String content) { this.title = title; this.writer = writer; this.content = content; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getWriter() { return writer; } public void setWriter(String writer) { this.writer = writer; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } @Override public String toString() { return "Board [title=" + title + ", writer=" + writer + ", content=" + content + "]"; } }
Java
복사

HomeController.java

package com.aloha.spring; import java.text.DateFormat; import java.util.Date; import java.util.List; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.aloha.spring.dto.Board; import com.aloha.spring.service.BoardService; import com.aloha.spring.service.BoardServiceImpl; /** * Handles requests for the application home page. */ @Controller public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); private BoardService boardService; @Autowired public HomeController(BoardService boardService) { this.boardService = boardService; } @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) { logger.info("Welcome home! The client locale is {}.", locale); Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate ); // 게시글 목록 조회 요청 List<Board> boardList = boardService.list(); model.addAttribute("boardList", boardList); if( boardList != null ) for (Board board : boardList) { logger.info("board - " + board); } return "home"; } }
Java
복사

home.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %> <html> <head> <title>Home</title> </head> <body> <h1> Hello world! </h1> <P> The time on the server is ${serverTime}. </P> <hr> <table border="1"> <tr> <th>제목</th> <th>작성자</th> <th>내용</th> </tr> <c:forEach var="board" items="${ boardList }" > <tr> <td>${ board.title }</td> <td>${ board.writer }</td> <td>${ board.content }</td> </tr> </c:forEach> </table> </body> </html>
HTML
복사