๐Ÿ‘จ‍๐Ÿ’ป kimtongting
article thumbnail

 

 

 

๊ธด ๋ง ์—†์ด ๋ฐ”๋กœ ์„ค์ •ํ•ด๋ณด์ž.

 

 

Spring MVC Setting

 

 

Spring (STS) ๊ตฌ์กฐ์— ๋งž์ถ”๊ธฐ

 

์ขŒ์ธก์€ ์ด์ „ ๊ธ€์—์„œ ์™„๋ฃŒํ•œ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ์Šต์ด๊ณ , ์šฐ์ธก์€ STS ๊ตฌ์กฐ์— ๋งž์ถ˜ ํ”„๋กœ์ ํŠธ์˜ ๋ชจ์Šต์ด๋‹ค.

๋จผ์ € 'web' ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ 'src/main' ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„๋กœ ์ด๋™์‹œํ‚ค๊ณ , ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์ž.

 

๋‹จ์ถ•ํ‚ค๋Š” Shift + F6 / ํŒŒ์ผ์„ Refactor ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๋‹จ์ถ•ํ‚ค์ด๋‹ค. ์ธํ…”๋ฆฌ์ œ์ด ๊ธฐ๋ฐ˜ IDE์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋กœ,

'A' ํŒŒ์ผ์„ Refactor ํ•˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๋Š” ๋ชจ๋“  ํŒŒ์ผ๋“ค์˜ 'A' ์˜ ๋ช…์นญ์ด Refactorํ•œ ๋ช…์นญ์œผ๋กœ ์ž๋™์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.

 

๊ฒฝ๋กœ๊ฐ€ ์ด๋™ํ–ˆ๊ธฐ์— ์•„๋ฌด๋ž˜๋„ ํ”„๋กœ์ ํŠธ์˜ ์„ค์ • ๋˜ํ•œ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ๊ฒ ์ง€?

File / Project Structure๋กœ ๋“ค์–ด๊ฐ„๋‹ค.

Modules๋ฅผ ์„ ํƒํ•˜๊ณ  ๊ฐ€์šด๋ฐ์˜ Web ์„ ํด๋ฆญํ•˜๋ฉด Web Resource Dir ์ด ๋นจ๊ฐ„์ƒ‰์œผ๋กœ ํ‘œ๊ธฐ๊ฐ€ ๋˜์–ด์žˆ๋‹ค.

๋”๋ธ”ํด๋ฆญํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ์„ค์ •ํ•œ ๊ฒฝ๋กœ๋กœ ์žฌ์„ค์ •ํ•ด์ฃผ์ž! ์™„๋ฃŒ ํ›„ OK !

 

 

Spring Context Setting

์ด์ œ ์ปจํ…์ŠคํŠธ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค. (STS๊ตฌ์กฐ์— ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ)

๊ฒฝ๋กœ๋Š” src/main/webapp/WEB-INF ํ•˜์œ„๊ฒฝ๋กœ์— ์ƒ์„ฑํ•œ๋‹ค.

 

๋””๋ ‰ํ† ๋ฆฌ ๋ช…์€ spring/appServlet 

์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ์˜ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋™์‹œ์— ์ ์œผ๋ฉด ํ•˜์œ„์˜ ๋””๋ ‰ํ† ๋ฆฌ๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ƒ์„ฑ๋œ๋‹ค.

 

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ WEB-INF ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— STS ์—์„œ ์‚ฌ์šฉํ•˜๋Š” views ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๊ณ ,

test ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” resources ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.

 

์œ„ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๊ฐ€ ์™„์„ฑ์ด ๋œ๋‹ค.

 

Context ๋ช…์€ ์‚ฌ์‹ค ์ˆ˜์ •ํ•˜์ง€ ์•Š์•„๋„ ๋˜์ง€๋งŒ.. STS ์™€ ๋˜‘๊ฐ™์ด ๋งž์ถ”๊ธฐ ์œ„ํ•ด์„œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ˆ˜์ •ํ•ด๋ณด์ž

์œ„์—์„œ ํ–ˆ๋˜ Refactor ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ(Shift+F6) ํŒŒ์ผ๋ช…์„ ๋ณ€๊ฒฝํ•ด๋ณด์ž.

 

applicationContext.xml → root-context.xml

dispatcher-servlet.xml → servlet-context.xml

 

์ž ์–ด๋Š ๋ง ๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„์— ๋“ค์–ด์„ฐ๋‹ค.

์ฒ˜์Œ๋ถ€ํ„ฐ ์ง€๊ธˆ๊นŒ์ง€ ๋ˆˆ์—ฃ๊ฐ€์‹œ์˜€๋˜ context ํŒŒ์ผ๋“ค์˜ ์ € ๋นจ๊ฐ„์ƒ‰ ๋ฐ‘์ค„์„ ์—†์• ๋ ค๊ณ  ํ•œ๋‹ค.

 

ํ•ด๋‹ต์€ pom.xml์— ์žˆ๋‹ค.

์•„๋ž˜ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ ๊ฐ€์ ธ๊ฐ€์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐ ํ•˜๊ณ  ๋ณธ์ธ์˜ ํ”„๋กœ์ ํŠธ groupId์™€ artifactId๋ฅผ ์ž…๋ง›์— ๋งž๊ฒŒ ์ˆ˜์ •ํ•œ๋‹ค.

pom.xml
0.01MB

<?xml version="1.0" encoding="UTF-8"?>
<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>com.system.api</groupId>
    <artifactId>localAPI</artifactId>
    <name>localAPI</name>
    <packaging>war</packaging>
    <version>1.0</version>

    <properties>
        <java-version>1.8</java-version>
        <org.springframework-version>4.2.4.RELEASE</org.springframework-version>
        <org.aspectj-version>1.6.10</org.aspectj-version>
        <org.slf4j-version>1.6.6</org.slf4j-version>
        <org.apache.tiles-version>3.0.7</org.apache.tiles-version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>
    <dependencies>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${org.springframework-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-webmvc</artifactId>
            <version>${org.springframework-version}</version>
        </dependency>

        <!-- AspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${org.aspectj-version}</version>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-jcl</artifactId>
            <version>2.12.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>2.12.1</version>
        </dependency>

        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.api-client/google-api-client -->
        <dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client</artifactId>
            <version>1.26.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.oauth-client/google-oauth-client -->
        <dependency>
            <groupId>com.google.oauth-client</groupId>
            <artifactId>google-oauth-client</artifactId>
            <version>1.26.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.http-client/google-http-client -->
        <dependency>
            <groupId>com.google.http-client</groupId>
            <artifactId>google-http-client</artifactId>
            <version>1.26.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.http-client/google-http-client-jackson2 -->
        <dependency>
            <groupId>com.google.http-client</groupId>
            <artifactId>google-http-client-jackson2</artifactId>
            <version>1.26.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>27.0.1-jre</version>
        </dependency>



        <!-- DB :3๊ฐœ -->
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.2.3.RELEASE</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.5</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
        </dependency>

        <!--jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.8</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.8</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.8</version>
        </dependency>
        <!-- maria db -->
        <dependency>
            <groupId>org.mariadb.jdbc</groupId>
            <artifactId>mariadb-java-client</artifactId>
            <version>2.3.0</version>
        </dependency>

        <!-- JASYPT: Spring 3.1x Simplified Encryption -->
        <dependency>
            <groupId>org.jasypt</groupId>
            <artifactId>jasypt-spring31</artifactId>
            <version>1.9.2</version>
            <scope>compile</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-core</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-web</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-config</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>

        <!-- tiles: 3๊ฐœํŒŒ์ผ -->
        <!-- https://mvnrepository.com/artifact/org.apache.tiles/tiles-core -->
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-servlet</artifactId>
            <version>${org.apache.tiles-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-api</artifactId>
            <version>${org.apache.tiles-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-jsp</artifactId>
            <version>${org.apache.tiles-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-core</artifactId>
            <version>${org.apache.tiles-version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tiles</groupId>
            <artifactId>tiles-template</artifactId>
            <version>${org.apache.tiles-version}</version>
        </dependency>

        <!-- @Inject -->
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
            <version>1</version>
        </dependency>

        <!-- Servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.2</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.2.1</version>
                <configuration>
                    <mainClass>org.test.int1.Main</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

 

 

pom.xml Update๋ฅผ ํ•˜๋ฉด ์จ”์ŸŒ!! ์ด์ œ ์ •๋ง ๋!

 

 

๋งˆ๋ฌด๋ฆฌ

์–ด๋ ค์›Œํ•˜์ง€๋ง๊ณ  ์ฒ˜์Œ์— ๋จธ๋ฆฌ๋ฅผ ๋น„์šด ํ›„, ๋ฌด์ž‘์ • ๋”ฐ๋ผํ•ด๋ณด๊ณ  ๊ถ๊ธˆํ•œ ์ ์€ ๋ฐ˜๋“œ์‹œ ๊ฒ€์ƒ‰ํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
profile

๐Ÿ‘จ‍๐Ÿ’ป kimtongting

@kimtongting ์ž…๋‹ˆ๋‹ค

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!