본문 바로가기
Java

디자인 패턴 - 싱글톤 패턴

by 개발자공부 2024. 7. 1.
package greenAcademy.studentManagement;

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

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

// 싱글톤 패턴
// 객체 단 하나만 생성함을 보장해야 한다면 싱글톤 패턴으로 설계할 수 있다.
public class DBConnectionManager {

	// 자기 자신의 참조 주소값을 담을 변수 생성.
	// 단, private (외부 접근 차단)
	private static DBConnectionManager instance;
	private HikariDataSource dataSource;

	// 단, 외부에서 생성자를 호출 못하게 막아야 한다.
	private DBConnectionManager() {
		HikariConfig config = new HikariConfig();
		config.setJdbcUrl(null);
		config.setUsername("root");
		config.setPassword("asd123");
		config.setMaximumPoolSize(10);
		dataSource = new HikariDataSource(config);
	}

	// 외부에서 클래스이름.getxxxx 메서드를 만들어주면 된다.
	// 한 번에 스레드 하나만 접근하도록 동기화 적용
	public synchronized static DBConnectionManager getInstance() {
		if (instance == null) {
			instance = new DBConnectionManager();
		}
		return instance;
	}

	// Connection 객체를 반환(구현체 - HikariCP 이다)
	public Connection getConnection() throws SQLException{
		return dataSource.getConnection();
	}

} // end of class

'Java' 카테고리의 다른 글

Query String, Path Variable  (0) 2024.07.02
서블릿과 데이터베이스 연동  (0) 2024.07.01
서블릿과 서블릿 컨텍스트(html 파일 불러오기)  (0) 2024.07.01
Get, Post 요청 방식 이해하기  (1) 2024.07.01
Dynamic Web Project 1  (0) 2024.06.29