컴맹스토리

STS 프로젝트 초기 셋팅 Step3_파일(xml, properties등) 설정 본문

Spring/Spring 다운로드 및 환경설정

STS 프로젝트 초기 셋팅 Step3_파일(xml, properties등) 설정

Com_Story 2018. 9. 17. 14:29

[STS 프로젝트 초기 셋팅 Step3]

_파일(xml, properties등) 설정

 

 

 

 

안녕하세요 컴맹스토리의 컴쓰입니다.

 

이제까지 파일을 만들고 옮겼다면 그 파일의 설정을 해야합니다.

 

지금부터는 마지막 단계인 Step3를 통해서 xml, propertiest파일 설정 해보겠습니다.

 

 

 

[설정 예정인 파일]

 

1. web.xml

 

2. mvc-config.xml

 

3. application-config.xml

 

4. db.properties

 

5. mybatis-config.xml

 

6. mapping.xml

 

7. pom.xml

 

 

 

 

[web.xml 설정]

 

1. src → webapp → WEB-INF → web.xml 클릭

 

 

 

2. <servlet-mapping>의 <url-pattern>을 /에서 *.do 로 변경

 

(변경 전) - (변경 후)

 

 

 

3. <web-app>태그 안에 한글 엔코딩 코드 삽입

<!-- korean Encoding -->
 <filter>
  <filter-name>CharacterEncodingFilter</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>
  <init-param>
   <param-name>forceEncoding</param-name>
   <param-value>true</param-value>
  </init-param>
 </filter>
 <filter-mapping>
  <filter-name>CharacterEncodingFilter</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

 

 

 

 

[mvc-config.xml 설정]

 

1. src → main → webapp → WEB-INF → mvc-config.xml 클릭

 

 

 

2. 컨트롤러 등록

(Resolver를 사용하는 분이라면 Resolver의 </bean> 태그 뒤에 붙여주면 된다.)

 

(변경 전)

 

(변경 후)

<context:component-scan base-package="패키지명.컨트롤러 이름"/>

예)

<context:component-scan base-package="account.controller"/>

 

 

 

[application-config.xml]

 

1. src → main → resources → application-config.xml 클릭

 

 

 

2. 아래의 코드를 추가해준다.

(코드의 설명은 주석으로 대신하겠다.)

 

(변경 전)

 

(변경 후)

 

 

<!-- Service 어노테이션 등록 준비 --> <context:component-scan base-package="custom"/> <context:component-scan base-package="account"/> <!-- DataSource 설정 --> <context:property-placeholder location="classpath:spring/db.properties" /> <!-- DataSource 등록 : 커넥션 풀 --> <!-- properties파일을 사용하므로 ${properties이름} 을 적어주면된다. --> <!-- 혹 properties를 안적을 경우 경로를 적어주어야 한다. --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">     <property name="driverClassName" value="${jdbc.driverClassName}" />     <property name="url" value="${jdbc.url}" />     <property name="username" value="${jdbc.username}" />     <property name="password" value="${jdbc.password}" /> </bean> <!-- Spring과 Mybatis 연동 설정 --> <!-- 마이바티스를 사용하면, SqlSessionFactory는 SqlSessionFactoryBuilder를 사용해서 생성한다.      마이바티스 스프링 연동 모듈에서는, SqlSessionFactoryBean가 대신 사용된다. --> <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">     <property name="dataSource" ref="dataSource" />     <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/> </bean>

 

 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">     <constructor-arg ref="sessionFactory"/> </bean> <!-- Transaction --> <!-- 혹시나 자동으로 정보를 입력하다가 오류가 발생했을때 롤백을 하기위해서 설정한 것이다.     DAO파일에 어노테이션으로 @Transactional를 선언해주면 된다. (오토 커밋 설정일때는 의미가 없다.! 오토커밋이 아닐경우 가능하다.) --> <bean id="transactionManager"     class="org.springframework.jdbc.datasource.DataSourceTransactionManager">     <property name="dataSource" ref="dataSource" />

</bean> <!-- aop의 around로 동작을 한다. --> <tx:annotation-driven transaction-manager="transactionManager" />

 

 

이때! 위의 코드를 보면 태그 안의 class부분에 에러표시가 빨간줄로 생기는 것을 볼 수 있다.

 

이것은 아직 프로젝튼 내에 jar파일이 없기 때문에 해당 내용을 알수 없어서 생기는 것이다.

 

이것은 아래에서 pom.xml에서 해당 내용을 추가 함으로 해서 사라지게 된다.

 

이와 별도로 코드의 맨 아래의 <tx> 태그는 현재 페이지 내에 <tx>태그가 어떤것인지 모르기 때문에 생기는 것이다.

 

아래의 방법대로 <tx>태그를 추가해 보자. 

 

 

[<tx> 태그 추가]

 

1. application-config.xml → Namespaces → tx 체크

 

 

 

 

2. 적용 확인 (에러 사라짐)

 

 

 

 

[db.properties 설정]

 

1. src → resources → spring → db.properties클릭

 

 

2. 오라클 접속에 필요한 정보를 적어준다.

(usertname / password 또한 문자만 적어주면 된다. 예-jdbc.username=admin)

 

 

 

 

 

[mybatis-config.xml]

 

1. src → main → resources → mybatis → mybatis-config.xml 클릭

 

 

2. 클래스의 별명과 mapping.xml의 위치를 지정한다.

(db접속의 정보를 이곳에서 지정해 주어도 되지만 우리는 위에 db.properties를 이용하므로 과감히 삭제!)

 

(변경 전)

 

(변경 후)

<configuration>
 
  <!-- 클래스에 별명 설정 -->
  <typeAliases>
   <typeAlias type="account.bean.AccountDTO" alias="accountDTO"/>
   <typeAlias type="custom.bean.CustomDTO" alias="customDTO"/>
  </typeAliases>
 
 
  <!-- SQL Mapper 설정 -->
 <mappers>
 <!-- SQL문장이 기술되는 Mapper파일 -->
  <mapper resource="mybatis/custom-mapping.xml"/>
  <mapper resource="mybatis/account-mapping.xml"/>
 </mappers>
 
</configuration>

 

 

 

 

[mapping.xml 설정]

 

1. src/main/resources → mybatis → mapping.xml 클릭

 

 

2. 사용되는 SQL을 적어준다.

(지금은 사용하지 않을 예정이므로 이래도 둔다.

하지만 사용하게 되면 아래의 모습과 같이 사용하면 된다.)

 

(사용의 예)

 

 

 

 

 

[pom.xml 설정]

 

기존의 프로젝트가 jar파일을 직접 다운로드 하여 주입하였다면 maven을 사용하게 되면

경로와 버전만 적어주면 알아서 자동 다운로드가 가능하다. 이때, 사용되는 xml이 바로 pom.xml이다.

 

 

1. 프로젝트 → pom.xml 클릭

 

 

2. 자바와 spring의 버전을 변경해준다.

(변경되는 버전은 지금 현재 실제 사용하는 것으로 변경해 주어야 한다.!)

 

 

3. <dipendency> 추가

(나의 경우 JSON, mybatis, ojdbc, commons-dbcp를 사용한다.)

<dependencies> 
 <!-- JSON 라이브러리 -->
 <!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
 <dependency>
  <groupId>com.googlecode.json-simple</groupId>
  <artifactId>json-simple</artifactId>
  <version>1.1.1</version>
 </dependency>

 

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

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

 

 <!-- mybatis(3.4.2) -->
 <dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.2</version>
 </dependency>

 <!-- https://mvnrepository.com/artifact/com.oracle/ojdbc6 -->
 <dependency>
  <groupId>com.oracle</groupId>
  <artifactId>ojdbc6</artifactId>
  <version>12.1.0.2</version>
 </dependency>

 <!-- JDBC : spring-jdbc(4.3.6) -->
 <dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-jdbc</artifactId>
  <version>4.3.6.RELEASE</version>
 </dependency>

 <!-- DBCP : commons-dbcp (1.4) -->
 <dependency>
  <groupId>commons-dbcp</groupId>
  <artifactId>commons-dbcp</artifactId>
  <version>1.4</version>
 </dependency>
</dependencies>

 

 

위와 같이 <dependency>를 추가하게 되면 다른것은 괜찮은데 ojdbc6 부분만 에러가 발생한다.

 

이것은 oracle의 경로를 알지 못해서 발생하는 에러이다.

 

아래의 코드를 입력하여 경로를 재 설정 해주면 된다.

 

이때, 위치는 </properties>의 닫힘 태그와 <dependencies>의 열림태그 사이에 넣어주면 된다.

 

 

 

 

 

 

 

</properties>
 
 <repositories>
 <!-- 오라클 위치를 위한 레포지토리 -->
  <repository>
   <id>oracle</id>
   <url>http://maven.jahia.org/maven2</url>
  </repository>
 </repositories>
 
<dependencies>

 

 

추가 후에 아래와 같이 에러가 바로 사라지는 것을 볼 수 있다.

 

 

 

 

혹시 전체적으로 확인을 하고 싶으신 분들을 위해 pom.xml의 수정 전-후 전체를 모두 공개 합니다.

 

 

(변경 전)

 

 

(변경 후)

 

 

pom.xml에 사용하는 파일의 추가 함으로 인해서 Maven Dependencies 폴더 안에

 

설정한 버전 및 파일이 추가된것을 볼 수 있다.

 

(변경 전)

 

 

(변경 후)

 

 

 

pom.xml 추가 후의 에러가 발생했던 application-config.xml의 에러가 사라졌다.

 

 

 

 

이제 까지 spring의 동작을 위한 기본적인 설정에 대해서 알아봤습니다.

 

결합성을 낮추기 위해 역할별로 세분화 하다보니 기본적인 설정이 매우 복잡하고 까다로웠습니다.

 

설정 중에 혹여나 문제가 생기면 연계성 에러가 발생하여 에러를 해결하기도 매우 어려웠습니다.

 

혹시나 어려움을 느끼시는 분들을 위해 부족하지만 제가 사용했던 방법을 공유하였으니

 

조금이라도 도움이 되셨으면 좋겠네요.

 

모두 즐겁게 코딩하시고 오늘도 힘찬 하루 되세요

 

이상으로 컴맹스토리의 컴쓰였습니다.^^

Comments