Back-End/Java

[Spring] Legacy Project 구조와 설정하기

CJun 2021. 6. 4. 10:00
반응형
Spring 구조

hikari, Spring jdbc를 pop.xml에 넣기
여기서 pop.xml은 라이브러리 관리해준다.

HikariCP의 역할은 데이터베이스 connection pool 관리를 해준다.

여기서 connection pool은 컴퓨터의 자원을 많이 소모하기 때문에

조금이나마 관리해주어 성능에 큰영향에 끼치지 않게 해준다.

 

Spring jdbc는 현재 사용하고 있는 Spring의 버전과 같게해줘야 한다.

저는 Spring 5.2.15.RELEASE 사용하고있어서 Spring jdbc도 5.2.15.RELEASE 사용한다.

 

트랜잭션은 개발자의 편의를 최대한 편하게 해주는 작업이다.

마치 예외처리문 사이에 커밋과 롤백을 이용하여 트랜잭션을 처리하는데

모든 소스에 동일한 소스코드를 처리할때는 매우 기찮기 때문에

반복적인 작업을 해결해주어 더 이상 트랜잭션을 신경쓰지않게 만들어준다.

 

Oracle 코드를 pop.xml 삽입 또는 Oracle Bulid Path

만약 버전호환성 때문에 오류가 발생한다면 직접 Ojbc10을 넣어주면 되는데

자신의 SQL 설치경로파일에 들어간다면 현재사용하고 있는 ojdbc 버전이 나오는데

이걸 복사해서 lib폴더를 만들고 붙여주면 된다.

 

그 다음에 Bulid Path를 해줘야지만 ojdbc8.jar를 프로젝트에서 사용할 수 있다.

 

프로젝트 마우스로 우클릭 => Bulid Path => Configure Bulid Path 클릭

ojdbc를 Bulid Path를 완료했다면

내가 지금 진행하고있는 프로젝트도 ojdbc8.jar를

사용한다고 알려줘야하기 때문에 설정해야한다.

 

먼저 똑같이

프로젝트 마우스로 우클릭 => Bulid Path => Configure Bulid Path 클릭

 

프로젝트를 클릭 후 Ok 눌러주면 끝이난다.

 

SQL 포트번호 설정 및 권한설정

지금 현재 SQL 포트번호를 나타낸다.

select dbms_xdb.gethttpprot() from dual;

 

※사용하고있는 톰켓과 포트번호가 같으면 오류가발생 할 수 있기 때문에

확인을 해주고 변경해줘야한다.

 

변경방법은

exec dbms_xdb.sethttpport(9090)

 

Root-context.xml :
하나하나 폴더를 찾기 힘드니

com.example.sample를 봐달라 명시해준다.

 

JUnit 실행해보기
package com.example.sample3;

import static org.junit.Assert.fail;

import java.sql.Connection;
import java.sql.SQLException;

import javax.sql.DataSource;

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

	@Autowired
	private DataSource dataSource;
	
	@Test
	public void testconnection() {
		try {
			Connection con = dataSource.getConnection();
			
			log.info(con);
			
		} catch (SQLException e) {
			e.printStackTrace();
			fail(e.getMessage());
		}
	}
	
}

testconnection() 마우스 우클릭 => Rus As => JUint Test

 

반응형