'스프링 환경설정'에 해당되는 글 2건

  1. 2017.02.15 :: 스프링 프로젝트-스프링 환경설정
  2. 2017.02.01 :: 스프링 프로젝트-개발환경 구성(Eclipse + JDK + Tomcat)
프로그래밍 2017. 2. 15. 00:07

스프링 환경설정


바로 코딩을 시작할 줄 알았는데...

또 환경설정을 해야되냐구요?

지금까지는 개발을 위한 환경구성에 초점이 맞춰졌다면, 이제는 웹과 스프링 프레임워크 사용을 위한 기본 설정파일에 대한 설정과 설명을 하고 개발로 넘어가야 할 것 같아서... 몇 가지 준비했습니다.


web.xml [배포 서술자 : (DD, Deployment Descriptor)]

웹 애플리케이션의 기본적인 설정을 기술하는 파일입니다.

기본적인 설정이라 함은 filter, listener, servlet, session 등을 설정하는 것입니다.


web.xml 설정과 설명


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
 
 
    <!-- 웹 애플리케이션 이름 정의 -->
    <display-name>myapp</display-name>
    
    <!-- filter 설정 추가 -->
    <!-- filter : Client와 Servlet Containder 사이에서 HTTP 요청/응답을 변경할 수 있는 재사용 코드 -->
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <!-- The definition of the Root Spring Container shared by all Servlets and Filters -->
    <!-- ContextLoaderListener가 사용할 설정파일 위치 변경 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/spring/root-context.xml</param-value>
    </context-param>
    
    <!-- Creates the Spring Container shared by all Servlets and Filters -->
    <!-- listener 설정 -->
    <!-- listener : 루트 웹 애플리케이션 컨텍스트를 등록할 때 사용
                    웹 애플리케이션의 시작과 종료 시 발생하는 이벤트를 처리하는 listener인
                    ServletContextListener를 구현한 ContextLoaderListener가 웹 애플리케이션이
                    시작될 때 root application context를 생성 및 초기화하고,
                    웹 애플리케이션이 종료될 때 context를 종료하는 기능을 담당한다.  -->
                    
    <!-- 별다른 설정을 하지 않고 아래처럼 listener를 정의하면 /WEB-INF/applicationContext.xml 파일을
         디폴트 설정파일로 사용한다.
         설정파일의 위치는 <context-param> 항목을 이용해 변경할 수 있다.
         위의 <context-param> 항목을 참조!  -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
 
    <!-- Processes application requests -->
    <!-- 서블릿 설정과 서블릿 애플리케이션 컨텍스트 등록 -->
    <!-- DispatcherServlet이 초기화될 때 자신만의 컨텍스트를 생성 및 초기화한다.
         그리고 웹 애플리케이션 레벨에 등록된 루트 웹 애플리케이션 컨텍스트를 찾아서
         자신의 부모 컨텍스트로 사용한다. -->
    <servlet>
        <servlet-name>appServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- DispatcherServlet의 컨텍스트에 대한 디폴트 설정을 변경하고 싶다면
             아래와 같이 contextConfigLocation을 정의하여 경로를 설정하면 된다. -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/spring/appServlet/servlet-context.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
        
    <servlet-mapping>
        <servlet-name>appServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
 
</web-app>
 
cs



servelt-context.xml 설정과 설명(child context)


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        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.xsd">
 
    <!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure -->
    
    <!-- Enables the Spring MVC @Controller programming model -->
     
     <!-- 
     1. RequestMappingHandlerMapping bean등록(기존 DefaultAnnotationHandlerMapping)
     2. RequestMappingHandlerAdapter bean등록(기존 AnnotationMethodHandlerAdapter) : customArgumentResolvers, customReturnValueHandlers 추가 가능
     3. JSR-303의 검증용 어노테이션(@Valid)를 사용할 수 있도록 LocalValidatorFactoryBean bean설정 (JSR-303지원 라이브러리 존재 시)
     4. RequestMappingHandlerAdapter의 messageConverters프로퍼티로 메시지 컨버터들 등록
     주의사항
     <mvc:annotation-driven>을 사용할 때는 직접 RequestMappingHandlerAdapter를 등록해주어서는 안되며 직접 등록이 필요한 경우에는 
     <mvc:annotation-driven>을 설정하지 않고 각각의 필요한 설정을 수동으로 해주어야 한다.
     -->
     <annotation-driven />
    
    <!-- @Controller, @Repository, @Service, @Component 스트레오타입 어노테이션이 선언된 클래스를 빈으로 등록한다. -->
     <context:component-scan base-package="com.devdic.board"/>
 
 
    <!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
    <resources mapping="/resources/**" location="/resources/" />
 
    <!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
    <!-- 
    InternalResourceViewResolver는 웹 어플리케이션 컨텍스트에 존재하는 템플릿에게 랜더링에 대한 책임을 위임하는
    View 객체를 논리적인 View 이름을 사용하여 결정한다.
    View 객체는 기본적으로 InternalResourceViewResolver이며, 이 객체는 실제 랜더링을 수행할 JSP에 단순히 요청을 전달하는 일을 한다.
    만약 JSTL 태그를 사용한다면 viewClass 특성을 설정함으로써 InternalResourceView를 JstlView로 대체하여 JstlView 요청을 JSP에 전달한다.
     -->
    <beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <beans:property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
    
    <!-- JSP파일 경로와 접미어 설정 -->
    <beans:property name="prefix" value="/WEB-INF/views/"/>
    <beans:property name="suffix" value=".jsp" />
    </beans:bean>
    
</beans:beans>
 
cs


root-context.xml 설정과 설명(parent context)

<context~> 항목을 사용하기 위해 네임스페이스를 추가하셔야 합니다.

아래코드에서 굵은 글씨로 된 부분을 추가하시면 됩니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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"
    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.xsd">
    
    <!--  
        @Service, @Repository 스트레오타입 어노테이션이 선언된 클래스를 빈으로 등록한다.
    -->
     <context:component-scan base-package="com.devdic.board">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>
    
    <context:annotation-config/>
    
</beans>
cs


기본적인 설정은 어느정도 된것 같습니다.

DB연결을 위한 datasource, JDBC를 좀 더 쉽게 사용하기 위한 Mybatis연동, 논리적 작업단위의 Transaction 설정 등 몇가지가 남았지만...

잠시 뒤로 미루어두고 공지사항 등록 화면을 만들어보죠~~~

 

posted by 생각퍼즐
:
프로그래밍 2017. 2. 1. 00:28

개발환경 구성(Eclipse + JDK + Tomcat)

IDE : Eclipse Neon

JDK : 1.8

Tomcat : 8.0


웹 개발 입문자도 천천히 따라할 수 있도록 개발환경 구성 및 설정 부터 웹 개발에 필요한 많은 기능(지식)이 포함된 공지사항 기능구현까지 몇 회에 걸쳐 작성하도록 하겠습니다.


그럼 첫 단계로 [웹 환경의 이해1] 과 [웹 환경의 이해2] 글에서 집중 설명된

Application Tier에 대한 개발환경 구성을 시작할까요?


1. 환경구성에 필요한 SW 다운로드


◈ Eclipse 다운로드(SW 개발을 쉽게 할 수 있도록 도와주는 통합개발환경 툴)

  • 이클립스 사이트 이동하여 최신버전의 이클립스를 다운로드 합니다.

  • zip파일 및 exe(설치형) 파일 형식 중 아무거나 다운로드 하시면 되요! 참고로 저는 zip파일 형식으로 다운로 할게요~

  • 설치할 컴퓨터의 OS와 비트를 확인 후 다운로드 하세요~

  • 다른 버전을 다운로드 받으려면 MORE DOWNLOADS 메뉴를 이용하시면 됩니다.



JDK 다운로드(JAVA로 SW를 개발하기 위한 JVM(플랫폼 독립성 확보), JRE(실행환경), 각종 API 등 제공)

  • JDK 다운로드 사이트 이동하여 JDK를 다운로드 합니다.(이클립스와 동일하게 자신의 OS에 맞는 버전을 다운로드~)

  • 참고로 이클립스 네온을 사용하려면 자바 8버전 이상이 필요합니다.



마우스 스크롤을 내리면 Java Archive라는 내용이 보이고 "DOWNLOAD"라는 버튼을 클릭하면 다른 버전의 JDK도 다운로드 받을 수 있습니다.




Apache Tomcat 다운로드(Web Server, WAS(Servlet 컨테이너) 역할)

  • Tomcat 사이트 이동하여 원하는 버전의 Tomcat을 다운로드 합니다.

  • 저는 8.0버전을 다운로드 하였습니다.

  • zip파일 및 exe(설치형) 파일 둘 중 아무거나 선택하시면 됩니다. 저는 조금은 개발자 스러운 zip파일 형식으로^^



2. 개발환경 구성(압출풀기 및 설치)

  • 개발환경 구성을 위한 폴더를 하나 생성 합니다.
  • 저는 devdic이라는 폴더명으로 만들었습니다.
  • 개발에 필요한 SW를 한곳에 통합함으로써 관리 및 개발환경 공유가 쉬워지는 장점이 있습니다.
  • 아래의 그림 [개발환경 폴더 구성]처럼 하는 것이 목표입니다.

[개발환경 폴더 구성]


Eclipse 압축풀기

  • 새로만든 폴더(devdic) 아래에서 압축을 풀어줍니다. 
  • 그러면, devdic\eclipse\~의 형태로 구성됩니다.


JDK 설치

  • 다운로드 받은" jdk-8u121-windows-x64.exe" 파일을 실행합니다.
  • 아래의 그림[JDK 설치] 처럼 설치 PATH를 변경해 주세요!


[JDK 설치]


Apache Tomcat 압출풀기

  • 새로만든 폴더(devdic)의 tomcat폴더 아래로 압축을 풀어줍니다. 
  • 그러면, devdic\tomcat\~의 형태로 구성됩니다.

Eclipse workspace 폴더 생성
devdic\eclipse\eclipse.exe 파일을 실행하면, 아래의 그림처럼 이클립스의 workspace 디렉토리를 설정하는 창이 띄워집니다.
Browser 버튼을 클릭하여 workspace 디렉토리를 변경합니다.


아래의 그림처럼 devdic 폴더를 찾아서 선택한 후 --> "새 폴더 만드기(A)" 버튼을 클릭 --> 폴더명을 변경(저는 work로 정의)


이제 우리가 원하는 devdic\work의 경로로 지정되었습니다.

지금 설정한 경로를 기본경로로 사용하고 다시 물을건지에 대한 옵션을 선택한 후 "OK" 버튼을 클릭합니다.



아래와 같은 그림이 나오면 정상적으로 eclipse가 구동이 된 것입니다.



웹 프로그램 개발을 위한 Application Layer의 필수 SW는 설치가 되었으니 Eclipse 플러그인 설치 및 환경설정/연동 단계로 넘어 갈까요? 

posted by 생각퍼즐
: