SpringMVC 프로젝트 파일
정리 잘 해둘 것.
실무에서 가장 많이 사용되는 패턴
1. 서블릿 (HTML in JAVA) - Controller 역할
prepareStatement, dataFactory 설정 등,
Servlet으로만 한다면 중복되는 코드를 너무 많이 작성해야 했다는 점
다른 점은 다 참을만 했지만, 개발하면서 수천 줄의 코드를 짜면서
Java 코드 안에 html을 일일이 넣어야 되는 현상은 개발자 입장에서 굉장히 불편했을 것 같다.
고작 몇십줄 코드를 봤는데도 굉장히 불편하게 느껴지지 않는가?
큰따옴표와 +를 일일이 쳐가면서 html을 쳐야 한다니...
2. JSP (Java in HTML) - View 역할
JSP는 이러한 단점을 개선해준다!
Html 코드 안에 Java 코드가 존재하기 때문이다!
그러나 중복된 코드를 계속 작성해야 한다는 점, JSP 코드가 너무 방대해져버린다는 점은 여전히 큰 단점이다.
특히나 controller, domain, service를 분리하지 않는다면 더더욱이다.
3. 스프링 : 서블릿 + JSP (스프링으로 더 간단하게 작업 가능)
tomcat 8.~ 버젼이 좋고 (8, 8.5 다 괜찮다.)
java 8 버젼이 좋다
tomcat lib 안에
ojdbc14.jar
taglibs-standard-impl-1.2.5.jar
taglibs-standard-spec-1.2.5.jar
있어야 한다.
spring은 runas > run on server로 실행
M : model (DAO)
V : view (JSP)
C : controller (con...)
Spring 은 명확하게 MVC가 나누어져 있다.
MVC 패턴에 맞춰 진행해야 한다.
Spring은 Servlet이 없다.
mybatis - JSP에서 sever package class만들어 길게 썻던 코드를
DAO 파일에서
public List<VisitVO> selectList() {
// mapper인 visit.xml 에서 mapper이름을 v로 했기에 v.visit_list로 경로를 정해준다
List<VisitVO> list = sqlSession.selectList("v.visit_list");
return list;
}
이렇게 짧게 만들어준다.
Mapper - Mybatis Mapper XML File은 실행할 SQL 문을 정의해놓은 파일이다.
SQL문 실행을 위해 Parameter Object를 받아오거나,
SQL문 실행 결과를 Result Object에 자동 바인딩하는 기능 등을 제공한다.
요소 : <select> <insert> <update> <delete> <sql> <resultMap> <cache> <cache-ref>
------------------------------------------------------------------------------------------------------------------------------------------
Controller - Mapper를 가지고 있는 DAO를 불러온다 > 출력 및 작동
DAO - sqlSession을 셋터(select(), insert(), delete())와 생성자 인젝션으로 받을 준비
VO - Getter & Setter
mybatis-config.xml - 쿼리문 작성한 gogaek.xml을 등록 / 등록 추가 가능
gogaek.xml - 쿼리문 작성, Mapper
context-1-datasource - DB연결 준비
context-2-mybatis - cotext-1-datasource로 들어가는 역할
context-3-dao - DAO에 대한 Bean 객체 생성
Servlet-context.xml - context-3-dao Bean객체를 가져와서 Controller에 등록하고 Bean객체 생성
------------------------------------------------------------------------------------------------------------------------------------------
다른 프로젝트에서
pom.xml, context-1-datasource.xml, context-2-mybatis.xml 는 항상 고정,
context-3-dao.xml Controller.java DAO.java VO.java는 수정
파일 실행 순서
web.xml > context-1-datasource.xml > context-2-mybatis.xml > context-3-dao.xml
스프링 실행순서
1. 맵퍼에서 (조회, 수정등에) 필요한 쿼리문 작성 - config.mybatis.mapper > gogaek.xml
<select id="gogaek_list" resultType="vo.GogaekVO">
select goname, goaddr, gojumin from gogaek
</select>
2. 1의 맵퍼를 mybatis-config.xml에 등록
<mappers>
<mapper resource="config/mybatis/mapper/gogaek.xml" />
</mappers>
3. vo 생성하기
4. DAO 생성하기 (SqlSession을 셋터&생성자 인젝션으로 받을 준비)
5. context-3에서 4의 DAO에 대한 bean 객체 생성
<bean id="gogaek_dao" class="dao.GogaekDAO">
<constructor-arg ref="sqlSessionBean"/>
</bean>
6. controller 생성 (DAO를 인젝션으로 받을 준비)
생성자, @RequestMapping() 작성
7. servlet-context에 6에서 생성한 컨트롤러를 객체화, bean으로 만듦
<beans:bean id="gogaek_controller" class="controller.GogaekController">
<beans:constructor-arg ref="gogaek_dao" />
</beans:bean>
새 프로젝트 작성 시 순서
1. pom.xml 복사 후, 패키지와 프로젝트 명 변경
2. web.xml 복사
3. src/main/resources에 존재하는 모든 패키지를 복사
context-1-datasource
context-2-mybatis
두가지는 건들 필요없음
context-3-dao 만 수정해주면 된다
servlet-context에서 사용 할 컨트롤러로만 변경해주면 된다
Spring 부서목록 (select 만 있음) (0) | 2022.09.13 |
---|---|
Spring visit 방명록 (0) | 2022.09.13 |
Spring ( select, delete ) (0) | 2022.09.13 |
Spring 부서목록 코드 (0) | 2022.09.07 |
Spring 부서목록 파일 정리 (1) | 2022.09.07 |