spring(스프링) 기초 입문
개발툴은 Spring Tool Suite(STS)와 Toad를 사용.
1. maven(메이븐) 프로젝트 생성
1-1 다이나믹 웹 프로젝트 생성
웹 프로젝트는 Dynamic Web Project로 생성 해야한다.
프로젝트명은 Note로 작성후 바로 Next
next이후에 기본적으로 build path부분에 src만 나오는데 그걸 클릭 선택 후 Remove하고
Add Folder를 눌러 위사진과 같이 입력후 하나씩 추가한다.위 사진과 동일하게 build path 설정후 next 클릭
Content directory부분에 위사진과 같이 입력한다. 그리고 위와같이 General web.xml를 선택
finish를 하면 위사진과 같이 프로젝트가 형성 되어있다.
web.xml를 선택후 프로젝트를 생성해서 위와같이 추가 되어있는 걸 확인 할수 있다
1-2 메이븐 프로젝트로 변환
Note프로젝트에서 우클릭한 후 Configure -> Convert to Maven Project 선택
Convert to Maven Project 선택후 위와 같은 화면이 나온다. 바로 Finish
제대로 완료되면 위 사진과 같이 pom.xml 이 생성되는 것을 확인 할수있다.
pom.xml은 build를 구성하는것이 만드는 목적이다. 즉 war파일을 만들기 위함이다.
Build => war추출 (여기안에는 프로젝트에 필요한 라이브러리가 다 들어있다) -> 이것을 톰캠 Deploy(배포)할때 사용(사용자에게)
Spring Tool Suite(STS) 상단메뉴에서
window 선택하고 Preferences를 클릭하고 들어오면 위와 같은 화면이 구성되는데
여기서 maven를 선택하고 위 사진과 같이 체크박스에 선택하고
apply 클릭후 ok 클릭
그이후 상단메에서 File -> restart하면 재실행되고 이렇게 한번 설정하면 그이후에 설정안해도 된다.
1-3 pom.xml 의존라이브러리 추가
메이븐 프로젝트로 변환 시킬때 생긴 pom.xml을 클릭하여 들어가면 아래와 같은 화면이 나온다.
여기서 Dependencies tap을 선택하고 ADD를 클릭 후 아래와 같은 화면이 나온다.
spring-webmvc를 검색하고 org.springframework spring-webmvc를 선택하고
4.3.8.RELEASE[jar] 버젼을 선택하고 ok클릭
spring-webmvc추가 완료
pom.xml 탭을 선택하고 이렇게 소스형태로 확인 할수있다. 설치가 잘된것이 명확하게 확인 되었다.
* Tip 라이브러리 검색빠르게 하는법
상단메뉴 window 메뉴에서 Show View 메뉴로 가서 other를 클릭하면 위 사진과 같이 나온다.
여기서 Maven -> Maven Repostiories 선택하고 ok
ok이후 위 사진과 같은 화면이나온다. central 우클릭 하고 Rebuild index 클릭후 100% 다될까지 가달리면 된다.
라이브러리 검색이 잘안되거나 검색 속도가 느리면 이와 같은 설정하면 그이후에 잘된다.
scr\man\webapp\WEB-INF에서 spring 폴더를 생성하고 applicationContext.xml파일을 만든다.
일반 xml파일로 만들면 안되고 아래와 같이 파일을 만든다.
spring Bean Configuraction File 클릭 이름을 applicationContext.xml로 하고 바로 finish하지말고 next
next하면 위사진과 같이 나온다. Namespaces 탭 메뉴에 있는것이다.
여기서 필요한 항목을 위 사진과 같이 체크 하고 finish. 바로 finish하고 namespaces 탭으로
가고 필요항목을 선택시 ctrl+s를 눌러서 저장해야 세팅이 확실히 된다.
이렇게 세팅후 applicationContext.xml에 들어가보면 위사진과 같이 아까 체크한
항목들이 소스코드에 포함된것을 확인 할수 있다.
applicationContext.xml은 request를 시작해서 response까지 담당한다.
여기서 필수설정인 <mvc:anntation-driven/>을 <beans>안에 작성.
그리고 viewResolver를 추가 위 사진같이 </bean>까지 입력
class부분에서 InternalResourceViewResolver의 역할은 컨트롤러에서 resturn 받은 ModelAndView 객체에서
view페이지를 지정하는 class이다.
이 해당 bean에서는 property로 prefix와 suffix를 지정 할수 있게 된다.
class 부분에서 InternalResourceViewResolver의 역할은 컨트롤러에서 resturn 받은 ModelAndView 객체에서
view페이지를 지정하는 class이다.
이 해당 bean에서는 property로 prefix와 suffix를 지정 할수 있게 된다.
여기서 prefix는 root경로이고 suffix는 호출 페이지의 확장자명 이다.
예를 들자면 컨트롤러(Controller)에서 list를 return하게 되면 /WEB-INF/view/list.jsp를 호출하게 되는 것이다.
1-5 DispatcherServlet 등록
프로젝트 처음 생성할때 만들어진 web.xml에 아래 사진같이 소스코드를 입력한다. 어느정도 입력하고
컨트롤+스페이스를 누르면 자동생성 된다.
19번줄 <param-value>쪽이 location 부분이다. 처음 생성할때 location이
작성되어 있는데 그걸 지우고 /WEB-INF/spring/applicatioContext.xml을 압력하면
그이후에 그해당 위치에 applicatioContext.xml 알아서 읽어온다.
24~28번 줄 코드는 *Context.xml로 시작하는 파일을 다 인식(mapping) 시켜주는 코드이다.
나중에 새로운 패키지를 만들때마다 새로운 Context를 만들때마다 필요한 부분이다.
38번쨰 줄은 url부분이다. 이역시 처음 생성할때 url이라고 나오는데 지우고 /을 입력하면된다. 여기까지 DispatcherServlet
41~53번쨰줄 내용은 web 한글 filter 작업 부분이다. 한글이 깨지지않고 잘나온게 해준다.
한번 이렇게 적어놓으면 알아서 다 처리해준다.
1-5 Controller 생성
역할?
Request 받아서 적절한 처리 후 Response 보냄
Controller 한정적으로 처리한다.
Controller가 들어가갈 package 는 src/main/java에 만든다. 프로젝트명에 맞게 com.note.web으로 패키지를 만들었다.
com.note.web에 NoteController.java파일을 생성
Context.xml에 입력했던 경로들을 생각하면서 WEB-INF에 view폴더를 생성하고 그안에 note폴더를 생성하고
note폴더안에 list.jsp를 만든다.
그 이후에 위사진과같이 applicationContext.xml파일에 NoteConroller부분을 위사진과 같이 소소코드를 입력하고 추가.
class부분은 확실히 정확하게 입력
새로운 패키지에 새로운 컨트롤러 만들시 항상 applictionContext에 추가하는것을 깜빡하면 안된다.
NoteController.java와 위와같이 소스코드를 작성한다.
기본적으로 public class Controller위에 @Controller 꼭 추가해야 그다음 작업들 다 수행할수 있게 된다. 필수!
pom.xml에 Spring-webmvc를 추가해서
@Controller ,@RequestMapping, DispatcherServlet ,InternalReSourceViewResolver를
소스코드에서 사용할수 있게 된것이다.
DispatcherServlet ,InternalReSourceViewResolver은 xml에서 보았을 것이다.
맨 앞전에 applicationContext.xml에 설명 부분을 생각 해보면서 소스코드를 보자.
applicactionContext.xml에 InternalResourceViewResolver를 설정했기 때문에
list를 return하게 되면 /WEB-INF/view/note/list.jsp를 호출하게 되는 것이다.
좀더 자세히 설명하면 맨앞전에 WEB-INF안에 view폴더를 만들고 그안에 note폴더를 생성하고 list.jsp를 만들었는데
return옆에 문자열로 간추려서 "note/list"로 해도알아서 /WEB-INF/view/note/list.jsp를 호출하게 되는 것이다.
리턴타입이 String이 라는것이 보일것이다. 그래서 return 옆에 String형태로 작성이된것.
위 소스코드와같은 String부분은 단순히 jsp화면을 보여줄때 작성된다. 위에, @RequestMapping안에 "note/list"가 보여질 mapping주소 /note를 입력. 즉 url주소를 입력한다.
위와 같은 작업을 다 맞친후 Tomcat 서버에 Add하고 Note 프로젝트를 추가 시키고 서버를 실행하고
list.jsp에 확인을 위해 단순하게 입력.
브라우저 url주소를 http://localhost:8080/Note/note 입력하고 접속하면 위와 같은 화면이 나오게 된다.
@RequestMapping("/note")로 세팅하고 return "note/list"로
했기 때문에 http://localhost:8080/Note/note로 들어갈때 list.jsp화면이 보이게 된것이다.
이로써 스프링 기본 개발환경이 잘된것을 확인하게 된다.
지금까지 했던 작업들은 필수이고 기본이면서 가장 중요하다.
처음세팅할때 잘되어 있어야 나중에 다른 작업을 할때 문제없이 잘되기 때문이다.
maven test를 별도로 해서 maven세팅이 잘 되어 있는지 확인하는 방법도 있다. 그
방법은 다음 포스팅글에 작성에 작성하도록 하겠다.
[spring]스프링 Mybatis 연동 and 개발을 위한 패키지 와 context 세팅 (0) | 2017.06.20 |
---|---|
[spring]스프링 DB연동 (0) | 2017.06.19 |
spring Maven test(메이븐 테스트) , spring(스프링) Maven 알수없는 오류 (0) | 2017.06.15 |
spring(스프링) 입문 jstl 사용하기 & ModelAndView 이론 및 실습 (2) | 2017.06.11 |