의존관계 주입(xml)

언젠간·2022년 8월 22일
0

토비의스프링

목록 보기
9/16

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">
	<!-- 아래 value 애트리뷰트의 값은 수정자 메소드의 파라미터로 전달되는 스트링 자체 -->
		<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) 도 마찬가지임.
profile
코딩왕이될사나이

0개의 댓글