사실 Spring Legacy Project로 생성하면 샘플 jsp나 controller까지 다 만들어준다. 근데 그건 쓰잘데기 없는 jar파일까지 포함하기 때문에 Dynamic Web Project를 이용하여 처음부터 세팅해보려 한다.
자바 1.8
이클립스 2020-06
톰캣 8.5
스프링 5.2.8
1. New -> Dynamic Web Project
2. 프로젝트 이름 짓고, Target runtime에서 was 세팅 후 next
3. 원래 있던 src 폴더 삭제하고 위와 같이 작성 후 next
4. Content directory에 원래 WebContent가 있었는데 webapp으로 바꿔줬다(걍 내맘 ㅎ). 그리고 밑에 generate.. 어쩌구 에 체크, finish
5. 방금 만든 프로젝트 우클릭, Configure - Convert to Maven Project
6. 뭐없음 걍 Finish
7. pornpom.xml 파일이 뾰로롱 ㅎ
8. 그리고 다음의 소스코드를 pom.xml에 추가했다. 참고로 나는 webapp폴더를 src안에 옮겼다.(이것도 내맘 ㅎ)
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
</dependencies>
9. 참고로 위 소스 작성하고 저장하면 요런 jar파일이 생긴다.(뭐그냥 그렇다구..ㅎ)
10. web.xml을 열어서 다음과 같이 작성한다.
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:spring/*-context.xml</param-value>
</context-param>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encodingFilter</param-name>
<param-value>/*</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
11. WEB-INF 우클릭, New - Other...클릭
12. Spring 폴더의 Spring Bean Configuration File 클릭, Next
13. servlet-context.xml 적고 next
14. beans, context, mvc 클릭 후 finish. 이 작업은 나중에 servlet-context.xml의 Namespaces 가서도 클릭할 수 있다.
15. 이렇게 작성된 xml 파일에 내용을 다음과 같이 추가
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<mvc:annotation-driven/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
<context:component-scan base-package="com.devjones.web" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
</beans>
com.devjones.web 은 곧 만들게 될 패키지 이름이다. 이름은 걍 내맘대로 지었다.
16. src/main/java 우클릭, new - class.
패키지 이름을 위에서 언급한 com.devjones.web으로 하며, 이름이 SampleController로 작성.
17. Controller를 위와같이 작성했다. 간단하게.
18. webapp폴더 밑에 WEB-INF폴더 밑에 view폴더 밑에 happySample.jsp를 생성했다. 작성하다보니 하나하나캡쳐뜨고 포스팅하는 노가다가 불행하단 생각이 들어 애써 행복한척했다.
19. 서버 생성. 거의 다왔다. 파이팅
20. 콘솔창에 찍에도 컨트롤러에 작성한 소스가 찍히고 jsp 파일도 무사히 출력되었다. 휴...
이 포스팅은 스프링 web mvc 프로젝트를 띄우기 위한 최소한의 세팅이었고 이후에 여러가지를 더 하면 될것이다.
참고.
'스프링' 카테고리의 다른 글
생성자 주입 (0) | 2021.04.05 |
---|---|
옵션 처리 (0) | 2021.04.05 |
mybatis-spring:scan과 context:component-scan (0) | 2021.03.01 |
Controller의 리턴타입 (0) | 2021.01.01 |
slf4j 추가하기 (0) | 2020.11.08 |