Java
@Bean
public UserDao userDao() {
UserDao userDao = new UserDao();
userDao.setDataSource(dataSource());
return userDao;
}
@Bean
public DataSource dataSource() {
SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
dataSource.setDriverClass(com.mysql.cj.jdbc.Driver.class);
dataSource.setUrl("jdbc:mysql://localhost/new_schema");
dataSource.setUsername("root");
dataSource.setPassword("root");
return dataSource;
}
XML
<bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost/new_schema"></property>
<property name="username" value="root"></property>
<property name="password" value="root"></property>
</bean>
- .class 없이 value="com.mysql.cj.jdbc.Driver" 만 써도 되는 이유는, 다음과 같은 변환 작업이 일어나기 때문
Class driverClass = Class.forName("com.mysql.cj.jdbc.Driver");
dataSource.setDriverClass(driverClass);
- 즉, 수정자 메소드의 파라미터 타입을 참고해서 적절한 형태로 변환해 줌.
- 스프링은 value에 지정한 텍스트 값을 적절한 자바 타입으로 변환해준다. Integer, Double, String, Boolean 및 오브젝트(Class, URL, File) 도 마찬가지임.