으~ 역시 웹은 재미있지만 어렵군요..저에게는 ㅎㅎ
DBCP 연동 테스트도 끝나고 ㅎ 이제는 connectionPool을 제대로 활용을 해야하는데 어떻게 해야할지 잘 모르겠더라구요 ㅎ
검색과 질문 끝에 싱글톤을 이용하면 된다고 하시더라고요.
싱글턴으로 만들어서 생성자에 룩업 구문 넣고 커넥션만 리턴하는 메서드 만들어서 쓰심 됩니다.
싱글톤이 무엇인지는 알고 있는데 한번도 사용해볼 일이 없었네요.
그래서 다시 공부하면서 사용해봅시다!!
아래 자세히 설명되어 있군요. 순서대로 읽어보시면 금방 이해하실 수 있으실 것입니다.
아래 사이트에 정말 제대로 설명이 되어 있습니다. 꼭 한번 읽어보시길.
멀티스레드 환경에서 Singleton pattern을 이용할 시 문제가 될 만한 이야기를 하고 있는데요, 왜 그런 문제가 발생할 수 있는지 설명하고 있습니다. 그리고 synchronized를 이용한 해결 방법도 이야기합니다. 저는 아직 이런 것을 사용할 만한 실력(?)이 안되기 때문에 Singleton pattern 사용방법만 알아보겠습니다.
import java.util.*;
class Singleton
{
private static Singleton instance;
private Vector v;
private boolean inUse;
private Singleton()
{
v = new Vector();
v.addElement(new Object());
inUse = true;
}
public static Singleton getInstance()
{
if (instance == null) //1
instance = new Singleton(); //2
return instance; //3
}
}
위 소스 보면서 만들어 보았습니다. 참 쉽죠잉~ 근데 잘 만들었는지는 모르겠네요 크크
public class DBconnector {
private static DBconnector instance;
private Connection con;
private Context envContext;
private DataSource ds;
private DBconnector(){
try {
envContext = (Context) new InitialContext().lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/VPLook");
con = ds.getConnection();
} catch (SQLException ex) {
Logger.getLogger(DBconnector.class.getName()).log(Level.SEVERE, null, ex);
} catch (NamingException ex) {
Logger.getLogger(DBconnector.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static DBconnector getInstance(){
if(instance==null){
instance = new DBconnector();
}
return instance;
}
public Connection getConnection(){
return con;
}
}
'CodeIN > Java' 카테고리의 다른 글
| [network] TCP/IP Socket 프로그램 구현시 고려사항 (0) | 2009/11/26 |
|---|---|
| [jsf] 또 다른 시작 JSF with Netbeans (0) | 2009/11/23 |
| [DBCP] 싱글톤(Singleton pattern)을 이용하기 (4) | 2009/11/20 |
| [java] String 한글 byte이용해서 자르기 (0) | 2009/10/28 |
| jdk1.6.07와 tomcat6.0.18 설치시 오류 (0) | 2009/10/22 |
| [java] Java, Charset (1) | 2009/10/21 |


