참고용으로 만들었으니, 이상한 점이나 조언 있으면 댓글 달아주세요!
기록용이니까 반말로 적겠음 :)
**FYI : STS4 설치하다가 legacy project 생성안되서 STS3 다시 설치함
목차
0. 환경
1. STS3/4 설치
2. 기초 세팅
3. String Legacy Project 생성
4. Tomcat 연동
5. MySQL 연동
6. MyBatis 연동
7. jUnit으로 테스트
0. 환경
Windows 10 Pro
Tomcat 9
JDK 11
=> 이미 java, tomcat은 깔려있고 환경설정도 돼있다는 가정하에 진행함
Date: 2023/05/16
1. STS(Spring Tool Suite) 설치
1-1. STS4 설치
필자는 Windows를 사용중이기 때문에 Windows를 설치한다. 각자 운영체제에 맞게 다운받으면 된다.
아래와 같은 .jar 파일로 다운로드가 된다.
원하는 곳에 압축을 풀고 나면 안에 'contents.zip' 파일 압축을 풀어준다.
압축을 풀면 아래와 같은 폴더가 생긴다.
SpringToolSuite4.exe 파일을 열어준다.
1-2. STS3 설치
아래 경로에서 다운로드 받으면 된다.
https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3
shortcut 만들어서 바탕화면에 놓고 쓰면 편하다.
2. 기초 설정
원하는 경로를 지정해주면 되는데, 그냥 default 경로로 지정해 줘도 무방하다.
2-1. Plugin 설치 (STS3를 설치했다면 필요없음 -> 2-2로 이동)
STS 4부터는 SPRING Boot만을 지원하기 때문에 JSP를 지원하지 않고, Spring Legacy Project를 생성할 수 없기 때문에 추가 설치가 필요하다.
(필수는 아니라서 필요없다면 설치를 안 해도 무방함)
2-1-1. Java Web Developer Tools 설치
JSP를 사용하기 위해서는 추가적으로 설치를 해야한다.
[Help] > [Install New Software...] > ...
재시작되고 [Window] > [Preferences] 들어가보면 없던 [Web]가 생겨있을 것이다.
2-1-2. Spring Tools3 Add-On 설치
'Spring Legacy Project' 를 사용하려면 설치해야한다.
[Help] > [Eclipse Marketplace...] > ...
[ERROR]
[해결] : 더이상 STS4툴에서 STS3 추가해서 legacy project를 생성하는 방법은 불가능 하다고 함.
[Help] > [Install New Software...] > ...
'Work with:' 옆 path 넣는 곳에 아래 URL을 입력하고 나오는거 전부 체크해서 [Next >]
http://download.eclipse.org/mylyn/releases/latest
이렇게 하고 다시 [Help] > [Eclipse Marketplace...] >로 돌아가서 설치하면,
2-2. JDK 지정
STS3에서는 없었던것 같은데, STS4에는 JRE가 plugin 으로 내장되어 있는듯하다.
[Window] > [Preferences] > [Java] > [Installed JREs]
2-2-1. 내장된 JRE 사용하기 (STS4)
2-2-2. 다운받은 JDK 지정해주기
다운받은 JDK 11을 [Add...] 했는데 경고문이 떴다 : "The selected JRE does not support the current compiler compliance level of 17."
이건 Compiler 버전이 안맞아서 그런것이다. 다음 단계에서 설정해 줄 거다. 일단 넘어가자.
Add 한 JDK의 체크박스에 체크해준다.
(내장된 JRE 는 삭제해도 무방함)
2-3. Compiler 설정
설정한 JDK 버전에 맞게 세팅한다.
[Window] > [Preferences] > [Java] > [Compiler]
2-4. 인코딩 UTF-8 설정
자세한 사항은 다음 링크를 참고하자.
https://avecmoi.tistory.com/34
2-5. Gradle 설정
Gradle 과 Java의 충돌을 방지하기 위해 경로를 입력한다.
[Window] > [Preferences] > 검색 'gradle' > [Gradle]
'Java home'에 JDK폴더 경로를 지정해준다.
2-6. Eclipse Web Developer Tool 설치
STS는 기본적으로 JSP Editor 가 설치되어있지 않다고 한다. (Eclipse Web Developer Tools는 JSP를 지원안함)
- 맨 위에 메뉴바에서 [Help] > [Eclipse Marketplace...]
- 검색 'web developer'
[ERROR]
흠 ,, 버전이 안맞는건가,, 일단 넘어감
3. Spring Legacy Project (현재 STS3만 가능)
3-1. Project 생성
[File] > [New] > [Spring Legacy Project] > ...
3-2. 프로젝트 자바(JDK, 컴파일러) 버전 변경
3-2-1. Project Facets
[만든 프로젝트] 우클릭 > [Properties] > [Project Facets] > ...
자신이 설치한 Java 버전으로 선택해주면 된다.
3-2-1. pom.xml 버전 변경
자신이 설치한 Java 버전으로 변경해주면 된다.
위 사진 처럼 [maven-compiler-plugin] <version> 태그의 버전도 원하는 버전/최신 버전으로 변경하고, 그 아래 있는 <source>, <target> 태그의 버전은 자신이 설치한 Java 버전으로 변경하면 된다.
4. Tomcat 연동
왼쪽 코너에 'Servers'라고 탭이 있다. 안보인다면 [Window] > [Show View] > [Servers] 하면 탭 열린다.
파란 글씨로 적혀진 'No servers are available. Click this link to create a new server...'를 클릭한다.
5. MySQL 연동
(MySQL이 설치되어있고, 계정과 database가 있다는 가정하에 진행)
5-1. pom.xml에 라이브러리 추가
<dependencies></dependencies> 사이에 아래 코드를 넣어주면 된다.
<!-- MySQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- Spring-jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- Spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- MyBatis 3.4.4 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!-- MyBatis-Spring -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
${org.springframework-version}을 입력한 이유는 spring버전과 동일하게 하기 위해서다.
5-2. root-context.xml 수정
5-2-1. Namespaces 수정
5-2-2. Source에 코드 추가
<!-- 아래 내용 변경하기 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/[데이터베이스명]?useSSL=false&serverTimezone=UTC">
</property>
<property name="username" value="[MySQL 계정아이디]"></property>
<property name="password" value="[MySQL 계정비밀번호]"></property>
</bean>
MySQL설치할 때 default값으 3306이다. 별도로 수정하지 않았다면 그대로 3306을 사용하면 된다.
아래 코드를 root-context.xml 에 추가한다.
<!-- 자신의 PC(로컬)에 MySql을 설치했을 경우 -->
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url"
value="jdbc:mysql://127.0.0.1:3306/test?useSSL=false&serverTimezone=UTC">
</property>
<property name="username" value="test_ex"></property>
<property name="password" value="1111"></property>
</bean>
6. MyBatis 연동
6-1. root-context.xml 코드 추가
pom.xml 에는 위에 MySQL 에서 한꺼번에 넣었으므로 넘어가고, root-context.xml 에 코드를 추가해준다.
<!-- mybatis SqlSessionFactoryBean -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:mappers/**/*Mapper.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"/>
</bean>
6-2. Mapping을 위한 추가 파일 생성
6-2-1. mybatis-config.xml 생성
[src/main/resources] > [New] > [Other...] > ...
방금 생성한 'mybatis-config.xml' 에 아래 코드를 추가해준다.
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
</typeAliases>
</configuration>
6-2-2. mapper.xml 생성
[src/main/resources] > [New] > [Package] > ...
package 명을 'mappers'라고 지었다.
생성한 Package 'mappers'에 [*Mapper.xml]파일을 추가할건데, [testMapper.xml]라는 명으로 만들었다.
그리고나서 만들어진 파일에 아래 코드를 추가한다.
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="hanazuou.imas.mlst.testMapper">
</mapper>
7. jUnit으로 테스트
7-1. pom.xml 수정
version을 4.12로 변경한다.
7-2. Library에 jUnit 추가
[만든 Project] > [Properties] > [Java Build Path] > [Libraries] > ...
7-3. test할 class 생성
총 2개를 만들거다. ( Class Name : MyBatisTest.java / MySQLConnectionTest.java)
만들어진 클래스에 아래코드를 넣는다.
[MyBatisTest.java]
package com.sample.controller;
import javax.inject.Inject;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"file:src/main/webapp/WEB-INF/spring/root-context.xml"})
public class MyBatisTest
{
@Inject
private SqlSessionFactory sqlFactory;
@Test
public void testFactory(){
System.out.println("\n >>>>>>>>>> sqlFactory 출력 : "+sqlFactory);
}
@Test
public void testSession() throws Exception{
try(SqlSession session = sqlFactory.openSession()){
System.out.println(" >>>>>>>>>> session 출력 : "+session+"\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
[MySQLConnectionTest.java]
package com.sample.controller;
import java.sql.Connection;
import javax.inject.Inject;
import javax.sql.DataSource;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "file:src/main/webapp/WEB-INF/spring/root-context.xml" })
public class MySQLConnectionTest {
@Inject
private DataSource ds;
@Test
public void testConnection() throws Exception {
try (Connection con = ds.getConnection()) {
System.out.println("\n >>>>>>>>>> Connection 출력 : " + con + "\n");
} catch (Exception e) {
e.printStackTrace();
}
}
}
7-4. 테스트하기
만든 java파일 오른쪽 클릭해서 > [Run as] > [jUnit test]
위 그림과 같이 출력이 됐다면, 잘 연동 됐다는 뜻이다.
설정할거 왤케 많아? 아직 남았다,,콘티뉴,,!
[Spring / MVC project] MVC project 추가 설정
안뇽~~~ :)
'Spring' 카테고리의 다른 글
[Spring][Project: 쇼핑몰 웹사이트][2.0] 프로젝트 흐름 / MVC 흐름 잡고가기 (0) | 2023.05.19 |
---|---|
[Spring][Project: 쇼핑몰 웹사이트][1.2] 회원가입/ 로그인 페이지 구현 (0) | 2023.05.18 |
[Spring][Project: 쇼핑몰 웹사이트][1.1] 회원가입/ 로그인 페이지 구현 (1) | 2023.05.18 |
[Spring / MVC project] MVC 프로젝트 추가 설정 (0) | 2023.05.17 |
[Spring / eclipse] 한글깨짐 UTF-8 설정 (0) | 2023.05.17 |