본문 바로가기
개발/Spring FW

maven없이 스프링(Spring) 프로젝트 만들기 (1) - 프로젝트 생성하기

by Devsong26 2017. 11. 6.

maven 외부 저장소에서 라이브러리를 프로젝트에 포함시킬 때 간혹 문제가 발생하는 경우가 있어서 maven이 없는 스프링 프로젝트를 만들어 보겠습니다. 

 

- Dynamic Web Project 생성하기

프로젝트 이름 입력 후 "finish"를 누릅니다.

 

- lib폴더에 jar파일 넣기

(1) http://maven.springframework.org/release/org/springframework/spring/ 에서 STS 버전에 맞게 Spring Release를 클릭합니다. 

(만약 없을 경우, Maven 프로젝트를 생성 후 pom.xml에서 <modelVersion>에 적힌 버전을 확인하시면 됩니다.)

그 후, dist.zip을 클릭하여 다운을 받습니다. 

해당 폴더를 열고 spring-framework-버전.RELEASE/libs로 들어가면 -javadoc, -sources 를 제외한 모든 jar파일을 복사 후 

프로젝트의 WebContent/WEB-INF/lib 폴더 밑에 붙여 넣습니다.

 

(2) http://apache.tt.co.kr/commons/logging/binaries/commons-logging-1.2-bin.zip를 클릭하여 commons-logging.jar 파일을 WEB-INF/lib 폴더에 넣습니다. commons-logging.jar파일이 없으면 톰캣 실행시 에러가 납니다. 

 

(1),(2)를 완료하면 위와 같이 됩니다. 

 

 

- Spring Bean Configuration File 파일 생성하기

 

WebContent -> WEB-INF를 우클릭합니다. 

New -> Other를 클릭합니다.

 

Spring -> Spring Bean Configuration File 선택 후 Next누릅니다. 

(Spring을 설치하지 않았을 경우 보이지 않습니다.)

 

File name을 입력하실 때 ~~-servlet.xml 형태로 입력을 하셔야 합니다. 

그래야 DispatcherServlet이 Spring Bean Configuration File을 찾을 수 있습니다. 

(이 포스팅은 spring-servlet.xml로 파일명을 만드셔야 진행하실 수 있습니다.)

입력 후 "Finish"를 누릅니다. 

 

아래 내용은 나중에 읽으셔도 됩니다.

---------------------------------------------------------------------------------------------------------------------------------------------------------

* DispatcherServlet이란?

Spring은 MVC 패턴을 기반으로 합니다.(MVC 패턴은 Model-View-Controller 패턴을 말합니다.)

Controller과 Servlet은 초기에는 별개였지만 역할이 비슷하여 합쳐져 Controller-Servlet이 되었으며 Controller와 Servlet은 동일시 됩니다. 

 

1. Servlet은 웹 브라우저의 요청을 받습니다.

2. Servlet은 Model에게 요청된 작업을 전달합니다. 

3. Model은 DB와 연동하여 요청된 작업을 처리합니다.

4. DB는 작업 결과를 Model에게 반환합니다.

5. Model은 결과를 Servlet에 반환합니다.

6. Servlet은 그 결과를 Request객체에 저장합니다.

7. View Page로 이동합니다.

8. View Page는 Request에 저장된 값을 화면에 표시합니다.

9. 웹 브라우저에게 View Page를 보여줍니다. 

 

Spring을 사용하지 않고 MVC를 구현할 경우, 아래와 같이 web.xml에 각 요청 url 경로(*.shop...)마다 Controller와 mapping을 해줘야 합니다.

하지만 Spring은 DispatcherServlet을 생성하여 각 요청 url을 Default로 생성된 HandlerMapping에 등록된 Controller에 연결시켜 줍니다.

HanderMapping은 Bean, ViewResolver등이 기록된 리스트를 참고하여 url과 Controller를 연결시켜줍니다. 

그 리스트가 위에서 생성한 spring-servlet.xml 파일입니다. 

위의 사진은 MVC의 web.xml 파일의 모습입니다.

 

위의 사진은 Spring MVC의 web.xml파일의 모습입니다. 

<servlet-name>이름</servlet-name>에서 이름은 Spring Bean Configuration File의 -servlet.xml 의 앞부분을 적어주시면 됩니다.

 

---------------------------------------------------------------------------------------------------------------------------------------------------------

 

Spring Bean Configuration File을 생성하셨다면 

위와 같은 코드를 가진 파일이 생성됩니다.

밑에 보면 namespaces탭이 있는데 그것을 클릭하면 아래와 같이 보입니다.

beans는 체크가 되어있습니다. 중요한 것은 context를 체크하셔야 합니다. 

 

* context란? 

Spring IoC 컨테이너라고도하며, 설정 파일 안에 XML, JAVA 어노테이션, 자바 코드로부터 설정 메타데이터를 읽음으로써 자바 빈을 수집하고, 설정하고 객체화하는 것을 담당한다고 합니다. 

(저도 자세히는 알지 못합니다. 반드시 설정을 해야 스프링 프로젝트를 진행할 수 있습니다.)

 

체크가 되면 위의 빨간 박스안의 내용이 변경이 됩니다. 그리고 파란 박스 처럼 코딩을 일단 하시면 됩니다. 

코드 작성시 <bean class="spring.home.controller.HomeController"> 이 부분이 에러나는데 2부에서 해결합니다.

(ViewResolver와 bean태그는 이후에 설명하겠습니다.)

 

- web.xml 파일 생성하기

WebContent/WEB-INF를 우클릭 하여 New -> Other를 클릭합니다.

XML 폴더를 찾습니다.  XML File 클릭 후 Next를 누릅니다.

 

File name은 "web.xml"로 입력 후 finish를 누릅니다.

 

web.xml을 클릭 후 위와 같이 코딩합니다. 

(첫번째 줄의 경고는 무시하셔도 됩니다.)

 

* 1부를 요약하면 

- Dynamic Web Project 생성

- DispatcherServlet 설명

- Spring Bean Configuration File 생성

- web.xml 생성

 

이상으로 1부 포스팅을 마칩니다. 

 


더 많은 내용을 보시려면 아래를 참고하세요.


블로그의 다른 글

 

maven없이 스프링(Spring) 프로젝트 만들기 (2) - 웹 앱 실행하기

1부에서 작업한 코드로는 웹 프로젝트를 실행할 수 없습니다. 추가 작업을 하겠습니다. Java Resources -> src 우클릭 합니다. Name에 "spring.home.controller"를 입력 후 "Finish"를 누릅니다. 생성된 패키..

developer-syubrofo.tistory.com

 

maven없이 스프링(Spring) 프로젝트 만들기 (3) - 디비(DB, Database) 연동하기 #1

스프링 디비 연동 포스팅은 3파트로 나뉩니다. (1) DB 드라이버, ibatis, mybatis.jar 다운받기 및 셋팅 (2) DTO, DAO, mybatis 작업하기 (3) view 페이지 작업, Controller 작업하기 지금 보실 내용은 (1) DB..

developer-syubrofo.tistory.com

 

maven없이 스프링(Spring) 프로젝트 만들기 (3) - 디비(DB, Database) 연동하기 #2

스프링 디비 연동 포스팅은 3파트로 나뉩니다. (1) DB 드라이버, ibatis, mybatis.jar 다운받기 및 셋팅 (2) DTO, DAO, mybatis 작업하기 (3) view 페이지 작업, Controller 작업하기 지금 보실 내용은 (2) DTO, D..

developer-syubrofo.tistory.com

 

maven없이 스프링(Spring) 프로젝트 만들기 (3) - 디비(DB, Database) 연동하기 #3

스프링 디비 연동 포스팅은 3파트로 나뉩니다. (1) DB 드라이버, ibatis, mybatis.jar 다운받기 및 셋팅 (2) DTO, DAO, mybatis 작업하기 (3) view 페이지 작업, Controller 작업하기 지금 보실 내용은 (3) view..

developer-syubrofo.tistory.com

 

maven없이 스프링(Spring) 프로젝트 만들기 (4) - Ajax 설명

- Ajax란? Asynchronous Javascript + XML의 약자이며 비동기적 통신을 말합니다. HTML form 태그의 의해서 웹 브라우저가 웹 서버에 데이터를 요청하고 그 응답을 받을 경우 웹 페이지 화면 자체가 갱신이 됩

developer-syubrofo.tistory.com