1. pom.xml 설정
먼저 property에 아래와 같이 원하는 버전을 설정한다.
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.3.5.RELEASE</spring.version>
<mysql.version>8.0.31</mysql.version>
<commons.dbcp.version>2.1.1</commons.dbcp.version>
</properties>
이후 Maven 프로젝트의 pom.xml 설정을 해야한다. 먼저 Apache의 Connection Pool을 위해 common dbcp를 추가하기 위해서는 다음 코드를 추가해야 한다.
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>${commons.dbcp.version}</version>
</dependency>
그리고 mysql을 사용하기 위해 프로그램과 db를 연결할 때 사용하는 MySQL Connector를 추가하기 위해 아래 코드를 추가한다. 이때 본인의 버전에 맞는 mysql을 추가하면 된다.
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>
그리고 필요한 spring 라이브러리들을 추가해주면 된다. 이 글의 경우 spring-context, spring-jdbc, spring-tx를 추가했다.
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
2. Config 파일
먼저 Config 파일을 하나 생성한다. 이때 하나의 파일에 모든 설정을 다 넣으면 유지보수가 힘들기 때문에 이를 위해 @import 어노테이션을 활용해 데이터베이스 연결에 관련된 설정은 DBConfig에 작성했다. @import 어노테이션은 이와 같이 설정 파일을 분할하여 작성할 수 있게 도와준다.
@Configuration
@Import({DBConfig.class})
public class ApplicationConfig {
}
이후 데이터베이스 연결과 관련된 Config 파일을 아래와 같이 작성한다.
@Configuration
@EnableTransactionManagement // 트랜젝션 처리를 허용해주는 어노테이션
public class DatabaseConfiguration {
private String driverClassName = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://localhost:3306/connectdb?autoReconnect=true";
private String username = "connectuser";
private String password = "connect123!@#";
@Bean
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(driverClassName);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}
이후 우리는 Connection Pool을 통해 생성된 객체를 연결하고 반환하는 작업을 수행할 것이므로 이를 관리하기 위해 DataSource 객체를 생성해야 한다. 따라서 이를 Bean으로 등록했다. 이때 Common DBCP는 BasicDataSource 객체를 제공하는데 Common DBCP의 속성을 설정하기 위한 것으로 생각하면 된다. 이때 필요한 것은 사용한 driverClassName, url, username, password 등이 있다. 따라서 해당 내용은 위에서 먼저 선언하고 이후 setter 메서드로 해당 값들을 설정하고 DataSource 객체를 Bean으로 등록하도록 했다. 이제 위에서 만든 DataSource 객체가 잘 연결되는지 확인할 차례다. 따라서 위해서 선언한 Config 파일들을 불러서 Bean으로 등록된 dataSource를 불러와 Connection 해보는 코드가 필요하다.
public class DataSourceTest {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(ApplicationConfig.class);
DataSource ds = ac.getBean(DataSource.class);
Connection conn = null;
try {
conn = ds.getConnection();
if(conn != null)
System.out.println("Success Connection");
}catch (Exception e) {
e.printStackTrace();
}finally {
if(conn != null) {
try {
conn.close();
}catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
해당 코드를 실행했을 때 Success Connection이 뜬다면 잘 수행된 것이다.
References
'BackEnd > Spring' 카테고리의 다른 글
[Spring JDBC] Jdbc Template이란? (Insert, Update, Delete) (0) | 2023.01.28 |
---|---|
[Spring JDBC] Jdbc Template이란? (queryForObject, query) (0) | 2023.01.28 |
[Spring JDBC] Connection Pool, DataSource란? (0) | 2023.01.27 |
[Spring] Java Config를 활용한 Bean 등록 방법 (0) | 2023.01.25 |
[Spring] xml 파일을 활용한 Bean 등록 방법 (0) | 2023.01.25 |