티스토리 뷰

반응형

위 사진은 가장 처음 스프링 프로젝트를 만들면 볼 수 있는 프로젝트 구성이다.

 


 

src/main/java : 자바코드가 들어가는 곳.

  ( 대표적으로 Controller, DAO, VO 등등이 들어간다.)

 

 Controller가 존재하는 이유는, Spring에서는 조금 후 소개할 WEB-INF에 직접 접근할 수 없도록 되어있다. 그런데 모든 웹페이지 정보(JSP)는 WEB-INF에 저장되어 있고, 직접 접근이 안되기 때문에 사용자 Client는 우선적으로 JAVA코드인 Controller에 접근을 하고 Controller에서 그에 해당하는 JSP로 포워딩 시켜주게 된다.

 

 

src/main/resources : 프로젝트 실행시 사용되는 자원들이 들어가는 곳.

 

 mybatis연동시 사용되는 기본적인 설정파일들과, 기존에 사용하던

root-context.xml 와 servlet-context.xml을 관리목적상으로 옮겨서 저장하기도 한다. (이 부분은 선택사항이다.) root-context.xml이 여러가지 정보로 길어지는 것을 방지하고 파일을 분할해서 관리하므로 좀 더 관리상 수월하다.

 

 

 

 

 

 

1. config.mybatis.db.properties

       : DB연동시 사용될 정보 저장

       (나중에 context에서 이 파일을 import한 후에 사용한다.)

 

2. config.mybatis.mybatis-config.xml

       : mybatis 기본 세팅정보, mapper에서 사용할 Alias, mapper정보 저장

    typeAlias 태그는 이후 mapper XML에서 파라미터 및 반환값의 자료형을 간단하게 사용하고자 사용한다.

    mapper 태그는 config.mybatis.mapper 패키지의 모든 xml 파일을 매핑시켜주면 된다.

 

3. config.mybatis.mapper

      : DB연동시 사용할 모든 XML을 저장해 주면 된다.

 기본적으로 XML 파일의 구성을 살펴보면 제일먼저 <mapper namespace="board"> 태그가 있는데, 이 태그를 사용하면 DAO에서 sqlSession.selectList("board.board_list"); 의 빨간색과 같이 접근할 수 있다. 파란색 board_list는 밑에 여러 쿼리 태그들 중 어느 태그를 사용할 것인지 id를 지정해 주는 것이다.

 

 그리고 이후에 따라나오는 parameterType, resultType은 매개변수와 반환형의 자료형을 지정해 주는 것인데 여기서 b라는 것은 이전에 mybatis-config.xml에서 Alias를 해주었기 때문에 이렇게 사용이 가능한 것이다. 그리고 꼭 기억해야 할 점은 반드시 매개변수와 반환값은 1개여야 한다는 점이다.

 

 그리고 b의 자리를 대신할 수 있는 것에는 int, java.util.Map 등등이 있다. (반드시 패키지 다 써줘야 한다.)

 마지막으로 매개변수로 넘어온 데이터 접근시에는 #{ " 이름 " } 와 같은 형태를 사용한다.

 

 그러면 이렇게 정의해 둔 데이터를 DAO에서 어떻게 사용하는지 살펴보자.

이런식으로 사용하면 된다. 사용자체는 간단한 것 같다.

 한가지, sqlSession에 대해서 이야기 해보면 sqlSession은 밑에서 설명할 root-context.xml에서 정의 되어진 객체이다.

 

root-context.xml ( context-1-mybatis.xml )
root-context.xml ( context-3-dao.xml )
DAO

 위 두 과정을 거쳐서 sqlSession이라는 객체가 생성되는 것이다. 마지막 사진과 같은 함수가 있다면 자동적으로 sqlSession 객체를 사용할 수 있다는 점 기억하자. (이 외에도 많은 것들이 이런 방식으로 사용된다.)

 

 

4. config.spring.context

      : root-context.xml을 보기편하게 여러 xml파일로 분할해서 관리한다.

 대신 root-context.xml을 web.xml에서 읽어들이게 되어있기 때문에, 읽어들이는 경로를 config.spring.context로 변경 해주어야 정상적으로 프로젝트 실행 시 이 파일들을 읽어올 수 있게 된다.

  • context-1-datasource.xml : 제일 위에 있던 db.properties를 아래 명령어로 import 한 후 디비정보 입력.
    <context:property-placeholder location="classpath:config/mybatis/db.properties" />
  • context-2-mybatis.xml : mybatis와 연동. factoryBean과 sqlSessionBean 생성하기.
  • context-3-dao.xml : dao에서 사용할 sqlSession 생성하기.

 

5. config.spring.servlet

      : 기존에 servlet-context.xml 을 여기다가 옮겨서 관리한다. (한 눈에 보기위해서)

        마찬가지고 web.xml을 수정해 줘야 정상적으로 읽어올 수 있다.

 

servlet-context.xml에서 기억해야할 내용으로는 컨트롤러 경로를 지정해주는 것이다.

 여기서 ref="board_daoBean"을 해주는데 board_daoBean은 어디에 정의 되어있을까? 

 생각해보면 servlet-context.xml보다 먼저 읽어들이는 파일은 web.xml, root-context.xml 두 가지 밖에 없기 때문에 이중에서 찾아보면된다. 그 결과 context-3-dao.xml에서 정의해 준다는 것을 쉽게 찾을 수 있었다.

 


 

 밑에 나머지를 살펴보면 webapp 이라는 폴더가 보이는데, 여기가 실질적으로 웹사이트에 해당되는 코드, 자원, 설정들이 저장되는 폴더이다. 

 

1. resources 

     : 웹사이트 구성시 사용되는 자원들이 저장된다. (css, img, js 등등)

 

 

2. WEB-INF

     : 실질적으로 웹사이트의 설정 및 코드가 저장된다.

 

 반드시 기억해야 할 점은 외부에서 이 폴더에 접근이 불가능하다. 그러면 이 폴더 내부에있는 JSP 파일에는 어떻게 접근을 하게 될까? 우선 JAVA코드인 Controller에 접근을 하고 그 이후에 Controller가 해당하는 JSP파일로 포워딩 해주는 방식을 통해 접근하게 된다. WEB-INF에 직접 접근시 바로 404에러가 난다는 점 꼭 기억하자.

 

   2-1. spring : root-context.xml, servlet-context.xml의 기존 경로이다.

   2-2. views : jsp코드들이 저장되는, 즉, client에게 보여지는 코드들이 저장되는 곳이다.

   2-3. web.xml : pom.xml 다음으로 읽어들이는 파일이다. 해당 프로젝트의 전반적인 설정이 저장되어 있다.

                 ( 한글 인코딩, 읽어들일 파일 경로 등등)

 

3. pom.xml

      : 라이브러리나 프레임워크를 Maven이 자동으로 관리해 주는데 (일일히 업데이트 할 필요 없어서 좋다.)

        이 것을 관리하기위한 빌드 파일이다. 이 파일 내부에 빌드할 내용을 적어두면 프로젝트 저장시마다

        자동적으로 필요 라이브러리, 프레임워크를 빌드한다.

반응형

'Web > Spring & JSP' 카테고리의 다른 글

[Spring] Controller 와 View의 연결  (0) 2019.06.11
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함