Search
Duplicate

Spring ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Spring Legacy Project ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

Project/ # ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ โ”œโ”€โ”€ src/ # ์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ ๊ฒฝ๋กœ โ”‚ โ”œโ”€โ”€ main/ # ์ฃผ์š” ์†Œ์Šค ์ฝ”๋“œ ์œ„์น˜ โ”‚ โ”‚ โ”œโ”€โ”€ java/ # Java ํด๋ž˜์Šค ํŒŒ์ผ๋“ค โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ com.joeun.test/ # ์ตœ์ƒ์œ„ ํŒจํ‚ค์ง€ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ HomeController.java # ์ปจํŠธ๋กค๋Ÿฌ ํด๋ž˜์Šค โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ resources/ # ์ž์› ํŒŒ์ผ ๊ฒฝ๋กœ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ webapp/ # ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ด€๋ จ ์ž์› โ”‚ โ”‚ โ””โ”€โ”€ resources/ # ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž์› ํŒŒ์ผ๋“ค โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ WEB-INF/ # ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค์ • ํŒŒ์ผ ์œ„์น˜ โ”‚ โ”‚ โ”œโ”€โ”€ classes/ # ์ปดํŒŒ์ผ๋œ ํด๋ž˜์Šค ํŒŒ์ผ ๊ฒฝ๋กœ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ spring/ # ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ ๋ฐ ์ปจํ…์ŠคํŠธ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ appServlet/ # ์Šคํ”„๋ง ์›น ์„ค์ • โ”‚ โ”‚ โ”‚ โ”œโ”€โ”€ servlet-context.xml # ์Šคํ”„๋ง ์›น ์„ค์ • ํŒŒ์ผ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ root-context.xml # ์Šคํ”„๋ง ์„ค์ • ํŒŒ์ผ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€ views/ # JSP ๋ทฐ ํŒŒ์ผ๋“ค โ”‚ โ”‚ โ””โ”€โ”€ home.jsp # ํ™ˆ ํ™”๋ฉด JSP ํŒŒ์ผ โ”‚ โ”‚ โ””โ”€โ”€ pom.xml # Maven ๋นŒ๋“œ ์„ค์ • ํŒŒ์ผ

์ปจํ…์ŠคํŠธ ์„ค์ •

๋ฒ„์ „ ๋ณ€๊ฒฝ

โ€ข
๊ธฐ๋ณธ
โ—ฆ
Java ๋ฒ„์ „ : 1.6
โ—ฆ
Spring ๋ฒ„์ „ : 3.1.1.RELEASE
โ—ฆ
Servlet ๋ฒ„์ „ : 2.5
โ—ฆ
JSP ๋ฒ„์ „ : 2.1
โ—ฆ
Maven ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž๋ฐ” ๋ฒ„์ „ : 1.6
โ€ข
๋ณ€๊ฒฝ ๋ฒ„์ „
โ—ฆ
Java ๋ฒ„์ „ : 1.8, 11
โ—ฆ
Spring ๋ฒ„์ „ : 5.0.7.RELEASE
โ—ฆ
Servlet ๋ฒ„์ „ : 3.1
โ—ฆ
JSP ๋ฒ„์ „ : 2.1
โ—ฆ
Maven ํ”Œ๋Ÿฌ๊ทธ์ธ ์ž๋ฐ” ๋ฒ„์ „ : 1.8, 11

pom.xml

<!-- ์ž๋ฐ” ๋ฒ„์ „ : 1.6 โ†’ 1.8 --> <java-version>1.8</java-version> <!-- ์Šคํ”„๋ง ๋ฒ„์ „ : 3.1.1 โ†’ 5.0.7 --> <org.springframework-version>5.0.7.RELEASE</org.springframework-version>
XML
๋ณต์‚ฌ
<!-- Servlet --> <!-- ์„œ๋ธ”๋ฆฟ ๋ฒ„์ „ : 2.5 โ†’ 3.1 --> <!-- <dependency> --> <!-- <groupId>javax.servlet</groupId> --> <!-- <artifactId>servlet-api</artifactId> --> <!-- <version>2.5</version> --> <!-- <scope>provided</scope> --> <!-- </dependency> --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
XML
๋ณต์‚ฌ
<!-- ์ž๋ฐ” ๋ฒ„์ „ : 1.6 โ†’ 1.8 --> <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>
XML
๋ณต์‚ฌ

web.xml

<web-app version="3.1" 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 https://java.sun.com/xml/ns/javaee/web-app_3_1.xsd"> ...
XML
๋ณต์‚ฌ

์ธ์ฝ”๋”ฉ ์„ค์ •

web.xml

โ€ข
์ธ์ฝ”๋”ฉ ํ•„ํ„ฐ ๋“ฑ๋ก
<!-- ์ธ์ฝ”๋”ฉ ํ•„ํ„ฐ(ํ•œ๊ธ€๊นจ์ง ๋ฐฉ์ง€) --> <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>
XML
๋ณต์‚ฌ

contentType ์„ค์ •

<!-- JSP ์ธ์ฝ”๋”ฉ ํƒ€์ž… ์ง€์ • --> <%@ page contentType="text/html; charset=UTF-8" %>
HTML
๋ณต์‚ฌ

๋กœ๊ทธ ๋ ˆ๋ฒจ ์„ค์ •

๋กœ๊ทธ ๋ ˆ๋ฒจ
์šฐ์„ ์ˆœ์œ„
์„ค๋ช…
์ถœ๋ ฅ ์˜ˆ์‹œ
FATAL
1 (๊ฐ€์žฅ ๋†’์Œ)
์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜ ๋ฐœ์ƒ. ์‹œ์Šคํ…œ์ด ์ฆ‰์‹œ ์ค‘๋‹จ๋  ์ˆ˜ ์žˆ์Œ
DB ์—ฐ๊ฒฐ ์‹คํŒจ๋กœ ์‹œ์Šคํ…œ ์ข…๋ฃŒ
ERROR
2
์˜ค๋ฅ˜ ๋ฐœ์ƒ. ๊ธฐ๋Šฅ ์ˆ˜ํ–‰์— ์‹คํŒจํ•จ
ํŒŒ์ผ์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ
WARN
3
๊ฒฝ๊ณ . ๋™์ž‘์€ ํ•˜์ง€๋งŒ ๋น„์ •์ƒ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ
์„ค์ • ๊ฐ’์ด ๋ˆ„๋ฝ๋จ
INFO
4
์ •๋ณด. ์‹œ์Šคํ…œ ๋™์ž‘ ์ƒํƒœ ๋ณด๊ณ 
์„œ๋ฒ„ ์‹œ์ž‘ ์™„๋ฃŒ, ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ
DEBUG
5
๋””๋ฒ„๊น… ์ •๋ณด. ์ƒ์„ธ ์‹คํ–‰ ์ •๋ณด ์ œ๊ณต
์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ๊ฐ„, ๋‚ด๋ถ€ ๊ฐ’ ํ™•์ธ
TRACE
6 (๊ฐ€์žฅ ๋‚ฎ์Œ)
๊ฐ€์žฅ ์ž์„ธํ•œ ์ˆ˜์ค€์˜ ๋กœ๊น…
๋ฉ”์„œ๋“œ ์ง„์ž…/์ข…๋ฃŒ, ๋ฃจํ”„ ๋‚ด๋ถ€ ์ƒํƒœ

log4j.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- Appenders --> <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p: %c - %m%n" /> </layout> </appender> <!-- Application Loggers --> <logger name="com.joeun.test"> <level value="info" /> </logger> <!-- 3rdparty Loggers --> <logger name="org.springframework.core"> <level value="info" /> </logger> <logger name="org.springframework.beans"> <level value="info" /> </logger> <logger name="org.springframework.context"> <level value="info" /> </logger> <logger name="org.springframework.web"> <level value="info" /> </logger> <!-- Root Logger --> <root> <priority value="warn" /> <appender-ref ref="console" /> </root> </log4j:configuration>
XML
๋ณต์‚ฌ
package com.aloha.sample; import org.apache.log4j.Logger; public class LogExample { // ํ˜„์žฌ ํด๋ž˜์Šค ์ „์šฉ Logger ์ƒ์„ฑ private static final Logger logger = Logger.getLogger(LogExample.class); public static void main(String[] args) { logger.trace("์ด๊ฑด TRACE ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); logger.debug("์ด๊ฑด DEBUG ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); logger.info("์ด๊ฑด INFO ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); logger.warn("์ด๊ฑด WARN ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); logger.error("์ด๊ฑด ERROR ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); logger.fatal("์ด๊ฑด FATAL ๋กœ๊ทธ์ž…๋‹ˆ๋‹ค."); } }
Java
๋ณต์‚ฌ

Eclipse ์ธ์ฝ”๋”ฉ ์„ค์ •