개요
1. XML 설정 알고 전환하기
2. DataSource인터페이스로 변환
본문
1. XML 설정 알고 전환하기
xml을 이용하면 설정을 다루기 쉽고 이해하기도 쉽다. 사실 개인 프로젝트로 스프링을 쓸 때는 곧바로 xml을 썼기에 익숙하기도 하다. 개인 프로젝트를 만들 때 명백하게 이해하던 부분이니 간단하게 정리하고 넘어가는 것으로 하겠다.
자바 코드 설정정보 | XML 설정정보 | |
빈 설정파일 | @Configuration | <beans> |
빈의 이름 | @Bean methodName() | <bean id="methodName" |
빈의 클래스 | return new BeanClass(); | class="a.b.c... BeanClass"> |
기존의 DaoFactory에서 각각의 부분을 xml의 문법으로 전환하여 빈을 정의하면 위와 같이 대응할 수 있다.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean id="connectionMaker"
class="springbook.user.ex12.dao.DConnectionMaker"/>
<bean id="userDao" class="springbook.user.ex12.dao.UserDao">
<property name="connectionMaker" ref="connectionMaker" />
</bean>
</beans>
실질적인 XML코드로 전환하면 위와 같이 된다. <beans 뒤쪽으로 xmlns 형식으로 달려있는 것들은 스프링 스키마라고 해서 XML문서의 구조를 정의한다. bean으로 connectionMaker와 userDao를 등록하고 userDao는 connectionMaker를 레퍼런스로 등록하여 DI하고 있다.
2. DataSource인터페이스로 변환
ConnectionMaker를 여태껏 힘들게 수정하고 가다듬고 했는데 사실 자바에서 쓰라고 만들어놓은 DataSource라는 오브젝트가 이미 존재한다. 이를 활용할 수 있게끔 설정을 전환해본다.
public class UserDao {
private DataSource dataSource;//DB커넥션 기능을 가진 제공되는 인터페이스 DataSource인터페이스로 변환
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}//수정자 메소드 이용해서 주입
public void add(User user) throws ClassNotFoundException, SQLException{
Connection c =dataSource.getConnection();
...
UserDao를 DataSource인터페이스를 사용하게끔 변환
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
<property name="driverClass"
value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/springbook?allowPublicKeyRetrieval=true&useSSL=false&serverTimezone=Asia/Seoul&useUnicode=true&characterEncoding=UTF8&" />
<property name="username" value="root" />
<property name="password" value="1234" />
</bean>
<bean id="userDao" class="springbook.user.ex12.dao.UserDao">
<property name="dataSource" ref="dataSource" />
</bean>
</beans>
applicationContext를 DataSource를 사용하게끔 전환
정리
이제 1장의 마무리이다. 처음에 초난감 DAO에서 시작해서 점차 내가 사용하던 개인 프로젝트 생성에 가까워지고 있는 걸 느끼고 있다. 이번 1.8장에서 다루는 것은 xml으로 설정을 다루는 것인데, 이미 개인 프로젝트에서 써봤던 것인만큼 깊이 있게 공부할 것은 없었다. 한번 xml 코드를 따라서 써보는 것만으로도 복습의 의미가 있었던 것 같다. 앞으로도 많은 것을 배워나갈 것이 기대된다.
소스 깃허브
https://github.com/cholongbul/Tobyspring
cholongbul/Tobyspring
토비의 스프링 연습. Contribute to cholongbul/Tobyspring development by creating an account on GitHub.
github.com
'스프링' 카테고리의 다른 글
토비의 스프링 - 2.3 개발자를 위한 테스팅 프레임워크 JUnit (0) | 2021.05.28 |
---|---|
토비의 스프링 - 2.1 UserDaoTest다시 보기//2.2UserDaoTest개선 (0) | 2021.05.27 |
토비의 스프링 - 1.7 의존관계 주입(DI) (0) | 2021.05.23 |
토비의 스프링 - 1.6 싱글톤 레지스트리와 오브젝트 스코프 (0) | 2021.05.20 |
토비의 스프링 - 1.5 스프링IoC (0) | 2021.05.20 |