프로젝트 기본 생성 후
1. 서블릿 설정 및 위치 변경
1-1. 서블릿 설정 변경(url 접속 패턴 변경 - 설정값은 원하는 대로 변경)
<!-- Processes application requests --> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <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>*.do</url-pattern> </servlet-mapping>
1-2. 서블릿 위치 변경(위치는 원하는 곳으로)
.......... <!-- The definition of the Root Spring Container shared by all Servlets and Filters --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/config/spring/context-*.xml</param-value> </context-param> .......... <!-- Processes application requests --> <servlet> <servlet-name>appServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/config/servlet/servlet-*.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> ..........
2. 인코딩 설정
2-1. 한글 인코딩 수정(web.xml)
<filter> <filter-name>encoding</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>encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2-2. 출력되는 jsp 파일 상단에 추가
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
2-3. 한글이 계속 깨질 경우(톰캣의 server.xml)
<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="9090" protocol="HTTP/1.1" redirectPort="8443"/> <Connector URIEncoding="UTF-8" port="8009" protocol="AJP/1.3" redirectPort="8443"/>
3. 오라클 드라이버 추가하기(pom.xml)
3-1. pom.xml 파일에 필요한 의존성 추가 후 프로젝트에서 마우스 오른쪽키 -> Maven -> Update Project 를 실행
<!-- 오라클 JDBC 드라이버를 가져오기 위해 리파지토리 추가 --> <repositories> <repository> <id>oracle</id> <url>http://maven.jahia.org/maven2</url> </repository> </repositories> <!-- 스프링에서 JDBC 를 사용하기 위한 라이브러리 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${org.springframework-version}</version> </dependency> <!-- 컨넥션 풀을 위한 라이브러리 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!-- 오라클 JDBC 드라이버 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>12.1.0.2</version> </dependency>
<!-- MySql 드라이버(필요시) --> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <version>5.1.31</version> </dependency> <!-- MyBatis 라이브러리 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.1</version> </dependency>
<!-- 마이바티스와 스프링 연동을 위한 라이브러리 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.3.0</version> </dependency>
4. DB접속을 위한 설정(root-context.xml)
4-1. Oracle일 경우
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- Root Context: defines shared resources visible to all other web components --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> <property name="url" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:xe" /> <property name="username" value="spring" /> <property name="password" value="1234" /> </bean> </beans>
4-2. MySql일경우
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://주소/스키마"/> <property name="username" value="아이디"/> <property name="password" value="비밀번호"/> </bean> </beans>
4-3. MyBatis 연결을 위한 Mapper연결 설정(root-context.xml에 적어도 되고, 새로 xml파일을 만들어줘도 된다, ref와 name만 맞게 적어주면 된다)
<!-- SqlSessionFactory 객체 주입 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:/mybatis-config.xml"></property> <property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml"></property> </bean> <!-- SqlSession 객체 주입 --> <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache"> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg> </bean>
* 위와같이 했을 때 서버 실행시 오류가 날 경우에는 jar파일을 다운받다가 깨지는 경우가 있기 때문에 jar파일을 다시 다운받아주면 된다.
5. 로그출력을 위한 Log4j설정
5-1. 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"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p [%c] %m%n" /> </layout> </appender> <appender name="console-infolog" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %5p %m%n" /> </layout> </appender> <!-- Application Loggers --> <logger name="com.freehaja.web" additivity="false"> <level value="debug" /> <appender-ref ref="console"/> </logger> <!-- Query Loggers --> <logger name="jdbc.sqlonly" additivity="false"> <level value="INFO"/> <appender-ref ref="console"/> </logger> <logger name="jdbc.sqltiming" additivity="false"> <level value="INFO"/> <appender-ref ref="console"/> </logger> <logger name="jdbc.resultsettable" additivity="false"> <level value="INFO"/> <appender-ref ref="console"/> </logger> <!-- Root Logger --> <root> <priority value="off"/> <appender-ref ref="console" /> </root> </log4j:configuration>
log4jdbc는 아래와 같은 옵션들을 제공한다.
- jdbc.sqlonly : SQL문만을 로그로 남기며, PreparedStatement일 경우 관련된 argument 값으로 대체된 SQL문이 보여진다.
- jdbc.sqltiming : SQL문과 해당 SQL을 실행시키는데 수행된 시간 정보(milliseconds)를 포함한다.
- jdbc.audit : ResultSet을 제외한 모든 JDBC 호출 정보를 로그로 남긴다.
- 많은 양의 로그가 생성되므로 특별히 JDBC 문제를 추적해야 할 필요가 있는 경우를 제외하고는 사용을 권장하지 않는다.
- jdbc.resultset : ResultSet을 포함한 모든 JDBC 호출 정보를 로그로 남기므로 매우 방대한 양의 로그가 생성된다.
- jdbc.resultsettable : SQL 결과 조회된 데이터의 table을 로그로 남긴다.
각옵션들의 기능을 정확히 알기 위해서는 직접 하나씩 변경해 보며 구동하는 것이 좋을 것이다.
5-2. Context-datasource.xml파일의 DB접속설정 변경
<bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> <property name="url" value="jdbc:oracle:thin:@localhost:1521:XE" /> <property name="username" value="spring" /> <property name="password" value="1234" /> </bean> <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource"> <constructor-arg ref="dataSourceSpied" /> <property name="logFormatter"> <bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter"> <property name="loggingType" value="MULTI_LINE" /> <property name="sqlPrefix" value="SQL : "/> </bean> </property> </bean>
5-3. pom.xml파일 수정
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.3alpha-8</version> </dependency> <dependency> <groupId>org.lazyluke</groupId> <artifactId>log4jdbc-remix</artifactId> <version>0.2.7</version> </dependency>
'SpringFramework > 설정' 카테고리의 다른 글
SpringFramework Security 비밀번호 암호화하기 (0) | 2020.03.04 |
---|---|
한글깨짐현상 (0) | 2018.10.02 |
pom.xml설정파일 (0) | 2018.09.21 |
스프링에서 POST/GET 한글처리 (0) | 2018.09.07 |
마이바티스(MyBatis) 쿼리 로그 출력 및 정렬하기 (0) | 2018.09.06 |