Spring project 제작 과정 ( CRUD 기능구현 예제)

Idel·2023년 2월 2일
0

기술블로그

목록 보기
29/38

Reference - Spring project 제작 과정 ( CRUD 기능구현 예제)

  1. web.xml
    설정을 위한 설정파일.
    즉, 최초로 WAS가 최초로 구동될 때, 각종 설정을 정의해줍니다.
    여러 xml파일을 인식하도록 각 파일을 가리켜 줍니다.

여기에서 root-context와 servlet-context파일을 지정해줌

참고

root-context의 역활 :

servlet-context.xml 과는 반대로 view와 관련되지 않은 객체를 정의합니다.
따라서 Service, Repository(DAO), DB등 비즈니스 로직과 관련된 설정을 해줍니다.

servlet-context의 역활 :

servlet에서 보듯이 요청과 관련된 객체를 정의합니다.
url과 관련된 controller나, @(어노테이션), ViewResolver, Interceptor, MultipartResolver 등의 설정을 해줍니다.
초기 파일을 보시면

위와 같은 주석이 있는데,,
DispatcherServlet과 관련된 설정을 해야함을 알 수 있습니다.
DispatcherServlet은 사용자의 요청이 오면 제일 먼저 시작되는 servlet.

  1. context.xml
    여기에서 context:component-scan을 설정하게 되는데
    base-package에 component-scan을 할 패키지 경로를 명시해주면 해당 경로를 포함한 모든 하위 경로에 적용되고, 애노테이션을 명시한 자바 파일들이 Bean으로 동록 되어 사용 가능해진다.
    즉 base-package안에 있는 어노테이션을 인식할 수 있게 되는 것이다. 따라서 그 package안에 있는 controller를 비롯한 다른 어노테이션 인식 !
  1. Controller
    base-package에 선언된 package안에 있는 @Controller가 인식되게 된다.
    그러면 그 Controller가 모델과 뷰를 관리하게 된다.
    Url-mapping(@RequestMapping)을 통해서 입력받은 url에 맞는 모델을 실행하게 되고
    이후 View를 호출한다.

여기서의 base-package는 com.crud.controller이므로 그 package안에 있는 controller를 인식하게 된다.

위 controller에서 /home url을 입력하에 되면 home이라는 모델이 실행되게 되는데 이 모델은 home이라는 view를 return 하게 된다.

위에서 localhost:8080은 Tomcat server을 의미하고, 뒤에있는 controller는 tomcat-server에서 이 프로젝트를 인식하는 Web project의 이름이다.

프로젝트 우클릭 -> properties -> Web Project Setting 에서 변경가능하다.

이 후 view가 리턴되면 view 폴더안에 있는 view라는 jsp파일이 호출되게 되는데 이 경로는 servlet-context안에서 설정가능하다.

ViewResolver에서 경로의 prefix와 suffix를 설정해 주고 있는데, 즉 return 값이 view라면 /WEB-INF/views/view.jsp 파일이 호출되는 것이다.

2.pom.xml 설정
dependency 추가 !
CRUD 프로젝트 생성시 필요한 여러가지 기능들을 구현한 library들을 추가해주어야 한다
POM.xml 안에 dependency를 추가하여 library를 사용한다!( 다운받아오는건가?)

dependency는 maven사이트 안에서 가져와서 추가할 수 있다

  1. DB연결을 위한 설정
    root-context에 db연결정보 설정하기
    DataSource등록

DB접속을 위해 나의 mysql url정보와 userid , passoword를 설정한다.

Sqlsessionfactory등록

(Mybatis 사용을 위한 sqlsessionfactory 커넥션 추가)

namespace 설정

(충돌방지 설정을 위한 namespace 설정)
-- 나는 이게 왜 안될까 ? ㅠㅠ xml 파일 밑에 namespace라는 항목이 없다 ㅠㅠ

  1. DB기초 공사
    참조 : http://m.blog.daum.net/chan-0124/70?np_nil_b=1&categoryId=8

  2. 5.VO(DTO) 생성
    VO (Value Object) : DB의 정보를 객체화 시키는 용도

DTO (Data Transfer Object) : 외부 시스템과 데이터 통신을 하기 위함.

여기서는 VO를 생성 !

먼저 프로젝트 이름을 domain으로 해서 패키지를 하나 만들고 게시판 구성을 위한 BoardVO.java 생성한다.

그 후 만들어 놓은 DB에 등록된 컬럼을 등록한다.
-> getter와 setter그리고 toString 메소드를 구현한다
-> 화면 우클릭 -> Source -> creat getter setter 클릭

  1. Board-Mapper.xml 작성
    1. DAO 와 연동하기 위한 SQL 작성하기
    insert,select,update,delete,listAll 쿼리문 작성하기

  2. DAO 작성

  3. Service 작성하기

0개의 댓글