병갈이 블록

코드로배우는 - (초기설정)SpringProject 초기세팅. 본문

IT(Old)/Spring 공부 기록

코드로배우는 - (초기설정)SpringProject 초기세팅.

woojang 2017. 8. 1. 18:17

1. 프로젝트 생성 및 JDK 버전 변경.

- 프로젝트 프로퍼티스에 들어가서 Project Facets, Java Builder Path, Java Compiler 의 Java버전을 

사용하려는(설치되어있는) 버전으로로 변경해준다. (내컴에는 현재 1.8로 설치되어 있어서 1.8로 세팅한다.)

- <java-version>을 위와 같은 버전으로 수정한다. 

http://projects.spring.io/spring-framework/ 이곳에 들어가서 springframework의 최신버전을 확인 후

<org.springframework-version>의 값을 환인한 최신버전으로 변경해준다. 글 작성시점으로 "4.3.10.RELEASE"가 최신이다.

spring-context모듈의 버전이 낮다면 최신버전으로 추가(수정)해준다.

(이 값은 이 후에 ${org.springframework-version}라고 지정된 자리에 값이 전달된다.)

- pom.xml

변경 전 

 변경 후

 <properties>

<java-version> 1.6 </java-version>

<org.springframework-version>

            3.8.1.RELEASE 

        </org.springframework-version>

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

<org.slf4j-version>1.6.6</org.slf4j-version>

</properties>

 <properties>

<java-version> 1.8 </java-version>

<org.springframework-version>

            4.3.10.RELEASE 

        </org.springframework-version>

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

<org.slf4j-version>1.6.6</org.slf4j-version>

</properties>



2. 서블릿 api 버전을 변경한다. 

- pom.xml

 변경 전

변경 수 

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

        -- 삭제 -- 

 </dependency>


3. 모듈들을 추가한다.

- spring-aop (버전 ${org.springframework-version} 이 변수는 1에서 설정한 스프링프레임워크 버전을 받는다.)

- spring-jdbc (버전 ${org.springframework-version} 지정)

- spring-test (버전 ${org.springframework-version} 지정)

- mysql-connector-java (설치된 MySQL 버전이 5.6이상이면 모듈버전 6.0.1버전사용 가능, 이하면 5.1.41버전)

- mybatis (현재 버전 3.4.2)

- mybatis-spring (현재 버전 1.3.1)

- log4jdbc-log4j2-jdbc4 (현재 1.16)


4. JUnit 버전을 다운시킨다. 

- pom.xml에서 기본으로 설정된 버전을 4.12로 변경


5. 설정에 필요한 파일들을 추가한다.

- mybatis-config.xml 

mybatis 관련 설정이 담긴 파일. 기본 Resources Package에 위치. (classpath:)

***** mybatis-config.xml 파일 기본 내용 *****

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration 

PUBLIC "-//mybatis.org/DTD Config 3.0//EN" 
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

<typeAliases>    //패키지 등록시 MyBatis mapper작성시 패키지 이름 생략 가능.
<package name="데이터로 사용하는 클래스가 위치하는 패키지 등록"/> 
</typeAliases>
</configuration>


log4jdbc.log4j2.properties  &&  logback.xml

log4jdbc-log4j2를 설정하기 위한 파일들이다.

***** log4jdbc.log4j2.properties 파일 기본 내용 *****

log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator


***** logback.xml 파일 기본 내용 *****

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="jdbc.sqlonly" level="DEBUG"/>
<logger name="jdbc.sqltiming" level="INFO"/>
<logger name="jdbc.audit" level="WARN"/>
<logger name="jdbc.resultset" level="ERROR"/>
<logger name="jdbc.resultsettable" level="ERROR"/>
<logger name="jdbc.connection" level="INFO"/>
</configuration>


6. 사용될 데이터와 클래스를 위치시길 패키지를 추가한다. 

- 프로젝트의 영역을 나누고 구성하는 단계.


7. 사용될 DB Schema 및 Table , Dummy data, 개발에 사용할 user를 생성. user 권한 부여. 


8. root-context.xml에 DataSource 빈을 등록 후 Connection을 얻어오는지(DB와 연결이 되는지) 테스트.

- 기본 : driverClassName과 Url에 DB와 연결되는 정보를 입력한다.

**MySQL

driverClassName="com.mysql.cj.jdbc.Driver"    //cj는 상황에 따라 빼거나 둔다.

url="jdbc:mysql://localhost:3306/스키마이름?useSSL=false&amp;serverTimezone=Asia/Seoul"

**Oracle

driverClassName="oracle.jdbc.driver.OracleDriver"

url="jdbc:oracle:thin:@localhost:1521:SID"


- Log 기능 : driverClassName과 Url에는 log4jdbc-log4j2를 통해서 연결되는 정보를 입력한다.

**MySql

* driverClassName="net.sf.log4jdbc.jdbcapi.DriverSpy"

* url="jdbc:log4jdbc:mysql://localhost:3306/생성한스키마?useSSL=false&serverTimezone=Asia/Seoul"

**Oracle

driverClassName="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"

url="jdbc:log4jdbc:oracle:thin:@localhost:1521:SID"



*** 주의. 소스에서는 "&"문자를 인식 못함. "&amp;"로 입력하기.

*** driverClassName은 이름이 완전히 달라진다.

*** url은 중간에 "log4jdbc:"가 추가된다.


9. utf-8 인코딩 설정

- web.xml에 Filter를 추가한다.

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


10. Test를 위한 Test Class 설정

- src/test/java/에 테스트로 사용할 자바클래스를 추가한다.

- 클래스 상단에 아래의 애노테이션을 추가한다. (딱히 수정할 필요는 없다.)

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="file:src/main/webapp/WEB-INF/spring/**/root-context.xml")

- 실제로 테스트가 수행되는 메서드 상당에 @Test 애노테이션을 추가한다.



Comments