보라코딩

코드로 배우는 스프링 웹 프로젝트 Part3 본문

코딩/Spring

코드로 배우는 스프링 웹 프로젝트 Part3

new 보라 2023. 2. 5. 14:35

 

프로젝트 생성 및 준비
•Spring Legacy Project의 생성

•pom.xml에서 스프링 버전 변경

•spring-test,spring-jdbc,spring-tx 추가

•junit버전 변경

•Servlet 버전 변경 

•HikariCP, MyBatis, mybatis-spring, Log4jdbc 추가

•JDBC드라이버 프로젝트내 추가

•기타 Lombok의 설정 등

 

 

1. ex02로 자바 레거시 프로젝트 생성 (프로젝트 이름은 org.zerock.controller)

2. pom.xml가서 스프링버전 5.2.7로 jdk는 1.8로 변경 후 저장하고 업데이트

3. spring-test,spring-jdbc,spring-tx 추가

 

<!-- db연결 관련 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>

오라클 추가

<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>

 

** 혹시 에러가 난다면 메이븐 업데이트 해보기!

 

4. pom.xml에서 junit 4.12로 변경, servlet 4.0.1 변경

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

 

5. HikariCP, MyBatis, mybatis-spring, Log4jdbc 추가

 

<!-- HikariCP 추가 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.5</version>
</dependency>

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

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

<!-- https://mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1 -->
<dependency>
    <groupId>org.bgee.log4jdbc-log4j2</groupId>
    <artifactId>log4jdbc-log4j2-jdbc4.1</artifactId>
    <version>1.16</version>
</dependency>

 

 

6. JDBC드라이버 프로젝트내 추가

log4jdbc.log4j3.properties 파일 붙여넣기

내용은

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

 

7. root-context.xml 파일에 히카리 관련 내용 붙여넣기

<!-- Root Context: defines shared resources visible to all other web components -->
<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
<property name="driverClassName"
value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"></property>
<property name="jdbcUrl"
value="jdbc:log4jdbc:oracle:thin:@localhost:1521:XE"></property>
<property name="username" value="book_ex"></property>
<property name="password" value="book_ex"></property>
</bean> 


<!-- HikariCP configuration -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource"
destroy-method="close"><constructor-arg ref="hikariConfig" />
</bean> 

실행해보고

다음 같은 폴더에 붙여넣고 실행하고 (이런 습관이 좋다!)

<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
</bean>

<mybatis-spring:scan base-package="org.zerock.mapper"/>

 

root-context.xml 에서 아래 namespaces에서 mybatis-spring, context 체크

 

8. 기타 Lombok의 설정 등

: 롬복 dependency 추가

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.16</version>
    <scope>provided</scope>
</dependency>

: 버전 1.2.17로 변경하고 아래 내용 지우기

 


mapper 테스트해주기 위해

패키지만들고 TimeMapper interface 만든다.

 

 

인터페이스 내용은 아래와 같이 작성한다.

package org.zerock.mapper;

import org.apache.ibatis.annotations.Select;

public interface TimeMapper {

@Select("select sysdate from dual")
String getTime();
}

 

테스트해주기 위해 테스트 내에 폴더 생성하고 클래스 생성

 

클래스 내용은

package org.zerock.mapper;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import lombok.extern.log4j.Log4j;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("file:src/main/webapp/WEB-INF/spring/root-context.xml")
@Log4j
public class TimeMapperTests {


@Autowired
private TimeMapper timeMapper;

@Test
public void testGetTime() {
log.info("testGetTime...");
log.info(timeMapper.getTime());
}
}

sqldeveloper.exe 통해서 오라클 접속

접속시 로그인 해줘야 함 (비밀번호는 oracle로 쉽게)

 

boox_ex에 테이블 생성 (아래와 같이 입력)

 

더미데이터 입력을 위해 아래 추가

 

insert into tbl_board (bno, title, content, writer)
values (seq_board.nextval, '제목 테스트', '내용 테스트', 'user00');

 

select * from tbl_board order by bno desc;

 

 

F5누르면 스크립트 출력창 나옴

ctrl + enter 누르면 저장

commit도 꼭 눌러주기