[SPRING] 게시판만들기 11 [ 프레젠테이션 레이어와 비즈니스 레이어 통합]

🐷Jinie (juniorDeveloper)·2020년 12월 4일
0

JSP/MVC/SPRING

목록 보기
61/81
post-thumbnail
  • 사용자가 서버에 요청을 전송하면 모든 요청을 서블릿 컨테이너가 생성한 DispatcherServlet이 받는다.
  • DispatcherServlet이 Controller에게 요청을 전달하고
  • Controller가 매개변수를 통해 전달된 DAO객체를 이용해 사용자가 요청한 로직을 처리한다.
  • 단, 이때 Controller가 DAO를 직접 이용하는 것은 올바르지 않다.
  • Controller -> Service -> DAO 순으로 로직이 넘어가도록 처리하자.
  • 비즈니스로직과 프리젠테이션로직의 분리 매개체가 Service

1. DAO 어노테이션 적용하기

  • DAOImpl에 @Repository 어노테이션을 넣어준다.
  • Service에 @Autowired를 이용해서 SchoolDAO형의 dao변수를 매핑한다.
    또, Service역시 @Service어노테이션을 적용한다.
  • Controller에서는 매개변수에서 직접 선언하던 SchoolService를 어노테이션을 이용하는 방식으로 변경한다.
  • 수정후 에러없이 화면이 잘 구현되는지 확인한다.


2. 2-Layered 아키텍처

2-1. 비즈니스 컴포넌트 로딩 추가

<!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	
<!-- Creates the Spring Container shared by all Servlets and Filters -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

2-2. 비즈니스 layer 추가

  • 두개의 컨테이너를 만들어서 역할을 다르게 사용하겠다.
  • applicationContext.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"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

<context:component-scan base-package="com.springbook.biz" />
</beans>
  • presentation-layer.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"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

<context:component-scan base-package="com.spring.k1"/>
</beans>
profile
ᴘᴇᴛɪᴛs ᴅᴇ́ᴠᴇʟᴏᴘᴘᴇᴜʀ. ᴘʀᴏɢʀᴀᴍᴍᴀᴛɪᴏɴ = ᴘʟᴀɪsɪʀ 💕

0개의 댓글