동일한 작업을 수행하는 정적 메서드를 제공하는 드라이버 대신 Class.forName()
을 사용하여 JDBC 드라이버를로드하는 논리는 무엇입니까?JDBC 드라이버가 클래스의 정적 초기화 프로그램에 자신을 등록하는 이유는 무엇입니까?
예를 들어 SomeDriverClass.loadDriver();
으로 전화를 걸어 정상적으로 계속 연결하면 어떨까요? java.sql.DriverManager.registerDriver()
에 대한 전화가 그런 식으로 일어날 수없는 이유는 무엇입니까?
인터페이스가이를 해결하므로 구체적인 클래스를 선언하는 대신 databaseDriver.load()와 같은 작업을 수행하고 IOC를 사용하여 드라이버 구현을 주입합니다. 예제 IDatabaseDriver driver = IOCContainer.getDriver(); driver.load(); –