IT_Note

스프링 환경 설정파일


mvc-config.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:mvc="http://www.springframework.org/schema/mvc"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:context="http://www.springframework.org/schema/context"

xmlns:p="http://www.springframework.org/schema/p"

xmlns:util="http://www.springframework.org/schema/util"

xmlns:task="http://www.springframework.org/schema/task"

xsi:schemaLocation="

   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

   http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd

        http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd">


    <mvc:annotation-driven />


    <!-- / 매핑에서 정적 리소스(html, css, js등)를 처리할수있도록 설정  -->

<mvc:default-servlet-handler/>


<context:component-scan base-package="com.sp" />


<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="order" value="1" />

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />

<property name="prefix" value="/WEB-INF/view/" />

<property name="suffix" value=".jsp" />

</bean>

<!-- 

<mvc:view-resolvers>

<mvc:jsp prefix="/WEB-INF/view/" />

</mvc:view-resolvers>

 -->


</beans>






application-config.xml 

 스프링에서 공통적으로 사용되는 객체를 생성하기 위한 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"

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">

    

    <!-- 마이바티스 설정 파일 import ★-->

    <import resource="/../../mybatis/mybatis-context.xml"/>


</beans>



web.xml


<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xmlns="http://java.sun.com/xml/ns/javaee"

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

         id="WebApp_ID" version="2.5">


    <display-name>board1</display-name>

    

   <!--

- Location of the XML file that defines the root application context.

- Applied by ContextLoaderListener.

-->

<!-- 공통으로 사용될 빈 환경설정 파일 -->

    <context-param>

        <param-name>contextConfigLocation</param-name>

        <param-value>classpath:spring/application-config.xml</param-value>

    </context-param>


<!-- ContextLoaderListener : 서로다른 DispatcherServlet이 공통으로 사용될 빈 설정 -->

    <listener>

        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    

    

    <!--

- Servlet that dispatches request to registered handlers (Controller implementations).

DispatcherSErvlet등록 및 스프링 컨트롤러의 환결설정 파일

-->

    <servlet>

        <servlet-name>dispatcherServlet</servlet-name>

        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

        <init-param>

            <param-name>contextConfigLocation</param-name>

            <param-value>/WEB-INF/mvc-config.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>

    

    <!-- ★ 인코딩필터 -->


<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>

</web-app>







pom.xml


pom.xml파일은 jstl, 스프링, 마이바티스, 오라클 등의 디펜던시를 설정한다.


대부분의 오픈 소스 라이브러리는 중앙 저장소에서 제공하지만 일부 라이브러리는 별도의 메이븐 원격 저장소를 통하여 제공한다. ( 오라클 등)


이처럼 중앙 저장소에서 제공하지 않는 라이브러리가 있으면 repository 엘리먼트에서 id, name, url값을 설정한다. id,name은임의의 값을 사용하며

url은 원격 저장소의 url을 설정한다.


http://mvnrepository.com

https://maven-repository.com

위 사이트에서 등록할 라이브러리를 입력 후 검색 해서 해당 라이브러리으 디펜던시를 pom.xml에 추가한다.


그렇게 작성된 pom.xml 이다 (2017.04.11)

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>org.springframework.samples</groupId>

  <artifactId>sp</artifactId>

  <version>0.0.1-SNAPSHOT</version>

  <packaging>war</packaging>

  

    <properties>

<!-- Generic properties -->

<java.version>1.8</java.version>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

<!-- Web -->

<jsp.version>2.2</jsp.version>

<jstl.version>1.2</jstl.version>

<servlet.version>3.1.0</servlet.version>


<!-- Spring -->

<spring-framework.version>4.3.6.RELEASE</spring-framework.version>

<org.aspectj-version>1.6.10</org.aspectj-version>

<!-- Logging -->

<logback.version>1.0.13</logback.version>

<slf4j.version>1.7.23</slf4j.version>


<!-- Test -->

<junit.version>4.12</junit.version>


<!-- mybatis -->

<mybatis.version>3.4.2</mybatis.version>

<mybatis-spring.version>1.3.1</mybatis-spring.version>


<!-- commons -->

<commons-dbcp.version>1.4</commons-dbcp.version>

<commons-pool.version>1.6</commons-pool.version>

<commons-fileupload.version>1.3.1</commons-fileupload.version>

<commons-io.version>2.4</commons-io.version>


<!-- tiles -->

<tiles.version>3.0.7</tiles.version>


<!-- spring-security -->

<spring-security.version>4.2.1.RELEASE</spring-security.version>


</properties>

    <repositories>

    <!-- DBMS를 위한 레포지토리(ojdbc6.jar : 11g) -->

        <repository>

            <id>datanucleus.org</id>

            <url>http://www.datanucleus.org/downloads/maven2/</url>

        </repository>

        

        <!-- jai_codec/jai_code 레포지토리 -->

        <repository>

       <id>geotools</id>

       <url>http://download.osgeo.org/webdav/geotools/</url>

       </repository>

    </repositories>

<dependencies>

<!-- Spring MVC -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>${spring-framework.version}</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>${spring-framework.version}</version>

<exclusions>

<!-- Exclude Commons Logging in favor of SLF4j -->

<exclusion>

<groupId>commons-logging</groupId>

<artifactId>commons-logging</artifactId>

 </exclusion>

</exclusions>

</dependency>


<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-websocket</artifactId>

<version>${spring-framework.version}</version>

</dependency>


<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-messaging</artifactId>

<version>${spring-framework.version}</version>

</dependency>

<!-- AspectJ -->

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjrt</artifactId>

<version>${org.aspectj-version}</version>

</dependency>


         <!-- AspectJ Weaver -->

<dependency>

<groupId>org.aspectj</groupId>

<artifactId>aspectjweaver</artifactId>

<version>1.6.8</version>

</dependency>


<!-- @Inject -->

<dependency>

<groupId>javax.inject</groupId>

<artifactId>javax.inject</artifactId>

<version>1</version>

</dependency>

<!-- Other Web dependencies -->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

<version>${jstl.version}</version>

</dependency>

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>${servlet.version}</version>

<scope>provided</scope>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>${jsp.version}</version>

<scope>provided</scope>

</dependency>

<!-- Spring and Transactions -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-tx</artifactId>

<version>${spring-framework.version}</version>

</dependency>


<!-- Logging with SLF4J & LogBack -->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

<version>${slf4j.version}</version>

<scope>compile</scope>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>jcl-over-slf4j</artifactId>

<version>${slf4j.version}</version>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>${slf4j.version}</version>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>log4j</groupId>

<artifactId>log4j</artifactId>

<version>1.2.17</version>

<exclusions>

<exclusion>

<groupId>javax.mail</groupId>

<artifactId>mail</artifactId>

</exclusion>

<exclusion>

<groupId>javax.jms</groupId>

<artifactId>jms</artifactId>

</exclusion>

<exclusion>

<groupId>com.sun.jdmk</groupId>

<artifactId>jmxtools</artifactId>

</exclusion>

<exclusion>

<groupId>com.sun.jmx</groupId>

<artifactId>jmxri</artifactId>

</exclusion>

</exclusions>

<scope>runtime</scope>

</dependency>

<dependency>

<groupId>ch.qos.logback</groupId>

<artifactId>logback-classic</artifactId>

<version>${logback.version}</version>

<scope>runtime</scope>

</dependency>


        <!-- spring-jdbc  -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-jdbc</artifactId>

            <version>${spring-framework.version}</version>

        </dependency>


        <!-- spring-websocket  -->

        <dependency>

            <groupId>org.springframework</groupId>

            <artifactId>spring-websocket</artifactId>

            <version>${spring-framework.version}</version>

        </dependency>


        <!-- javax.websocket  -->

        <dependency>

            <groupId>javax.websocket</groupId>

            <artifactId>javax.websocket-api</artifactId>

            <version>1.1</version>

        </dependency>


        <!-- oracle ojdbc6.jar  -->

        <dependency>

            <groupId>oracle</groupId>

            <artifactId>ojdbc6</artifactId>

            <version>11.2.0.3</version>

        </dependency>


       <!-- DBCP/POLL  -->

       <dependency>

            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>

            <version>${commons-dbcp.version}</version>

       </dependency>

       <dependency>

            <groupId>commons-pool</groupId>

            <artifactId>commons-pool</artifactId>

            <version>${commons-pool.version}</version>

       </dependency>


        <!-- Mybatis  -->

         <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis</artifactId>

            <version>${mybatis.version}</version>

        </dependency>

        

        <!-- MyBatis spring  -->

         <dependency>

            <groupId>org.mybatis</groupId>

            <artifactId>mybatis-spring</artifactId>

            <version>${mybatis-spring.version}</version>

        </dependency>


    <!-- 마이바티스 쿼리 출력용 -->

        <dependency>

           <groupId>com.googlecode.log4jdbc</groupId>

           <artifactId>log4jdbc</artifactId>

           <version>1.2</version>

        </dependency>     


<!-- Tiles  -->

        <dependency>

            <groupId>org.apache.tiles</groupId>

            <artifactId>tiles-extras</artifactId>

            <version>${tiles.version}</version>

         </dependency>


<!-- 기타 commons  -->

        <dependency>

    <groupId>commons-fileupload</groupId>

    <artifactId>commons-fileupload</artifactId>

    <version>${commons-fileupload.version}</version>

    </dependency>

    <dependency>

    <groupId>commons-io</groupId>

    <artifactId>commons-io</artifactId>

    <version>${commons-io.version}</version>

    </dependency>


        <!-- spring security -->

        <dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-core</artifactId>

            <version>${spring-security.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-web</artifactId>

            <version>${spring-security.version}</version>

        </dependency>

        <dependency>

            <groupId>org.springframework.security</groupId>

            <artifactId>spring-security-config</artifactId>

            <version>${spring-security.version}</version>

        </dependency>


<!-- jackson -->

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-core</artifactId>

            <version>2.7.4</version>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-databind</artifactId>

            <version>2.7.4</version>

        </dependency>

        <dependency>

            <groupId>com.fasterxml.jackson.core</groupId>

            <artifactId>jackson-annotations</artifactId>

            <version>2.7.4</version>

        </dependency>


<!-- JSON -->

<dependency>

            <groupId>net.sf.json-lib</groupId>

            <artifactId>json-lib</artifactId>

            <version>2.4</version>

            <classifier>jdk15</classifier>

        </dependency>

        

        <!-- JAI(Java Advanced Imaging) : 이미지편집기능 -->

<dependency>

  <groupId>javax.media</groupId>

  <artifactId>jai_codec</artifactId>

  <version>1.1.3</version>

</dependency>


<dependency>

   <groupId>javax.media</groupId>

   <artifactId>jai_core</artifactId>

   <version>1.1.3</version>

</dependency>


<!-- Test Artifacts -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>${spring-framework.version}</version>

<scope>test</scope>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>${junit.version}</version>

<scope>test</scope>

</dependency>


</dependencies>

</project>