대세가 Spring Boot 로 기울기 시작하다보니, Spring Legacy 를 하기가 갈수록 힘들어 지고 있다(?)
현재 내가 쓰고 있는 툴 및 하는 방법을 공유 하겠다.
1. JDK1.8 다운로드
라이센스가 나중에 발목을 잡을 수 있으니 OpenJDK1.8 을 이용함
https://github.com/ojdkbuild/ojdkbuild
2. STS4 다운로드
최신버전도 상관없음
3. STS4 실행 후,
Eclipse MarketPlace 에서 Spring Tools 3 Add-On for Spring Tools 설치
4. Spring Legacy 프로젝트 생성
File > New > Other
Spring 검색 > Spring Legacy Project
5. 설치시, 추가적인 구성요소를 설치하라고 뜨면 설치 ( Web Toolkit )
6. 프로젝트 생성후, 빌드오류가 계속 난다면, 기존에 설치된 메이븐 모듈 때문일 수 있으니, 메이븐 라이브러리 삭제
- 보통 사용자 폴더의 .m2 폴더를 삭제 하면 됨 ( C:\Users\{사용자ID}\.m2 )
------ 기본적인 프로젝트 생성 완료!
아무리 레거시 프로젝트지만 조금은 현대적으로 바꾸기 위해 pom.xml 을 바꿔보자
7. 컴파일 JDK1.8 변경 ( pom.xml )
<java-version>1.8</java-version>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
7.1 프로젝트 Properties > facet 검색 Java 변경
7.2 Compiler 지정 - 기본으로 두면 jre16 으로 되어 있으므로 JDK1.8 로 변경
8. 스프링 프레임워크 버전 변경
<org.springframework-version> 5.2.16.RELEASE</org.springframework-version>
9. Run on Server 로 최종 실행 테스트!
-- 최신화 완료!
오라클/MyBatis 추가설정 하기
10. pom.xml 파일 추가
<!-- Spring Framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Oracle -->
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.8</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
11. root-context.xml 에 db 접속 설정 추가
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
<property name="username" value="DB접속ID"></property>
<property name="password" value="DB접속암호"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml"></property>
</bean>
12. /src/main/resources/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>
</configuration>
-- 드디어 먼가 할 수 있는 준비가 끝났다!
13. 현재 프로젝트 하면 아직 필터 설정을 안해서 첫페이지 한글이 깨진다.
괜히 보기 싫으니 web.xml 파일에 filter 를 추가하자
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
이때 web.xml 에 빨간줄이 보인다!
상단에
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-> xsi:schemaLocation="http://Java.sun.com/xml/ns/javaee
J 만 대문자로 바꾸면 사라진다.
--- 여담
1. STS3 을 다운로드 받아서 해봤떠니 더이상 Spring Legacy Project 로 생성이 안된다.
2. eclipse(2021-06) 에 STS3 Tools 를 설치했는데 역시 안된다.