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