728x90
반응형

applicaton-context(전역)는 servlet-context를 포함함 
applicaton-context에서는 database관련 설정이 들어있음(JDBC관련, mybatis, 트랜젝션)
servlet-context에는 mvc관련 bean들이 다뤄짐(service,controller,dao)

 

 

jdbc & mybatis & dbcp 의존 라이브러리 추가
pom.xml에 의존 라이브러리 추가하면 자르파일을 알아서 관리
-> 자바코드에서 mybatis등을 임포트해서 사용 가능

- mybatis는 항상 jdbc위에서 돌아감

 


hellospring/pom.xml

ojdbc.jar는 WebApp Library 직접참조

<dependency>
	<groupId>oracle</groupId>
	<artifactId>ojdbc6</artifactId>
	<version>11.2.0.3</version>
</dependency>

이 부분 오류 뜨니까 주석처리하고 자르파일(ojdbc6.jar)로 대체

 

 

datasource & mybatis 관련 빈 등록
<beans:bean>원래 이건데 beans는 기본이라 안붙임 

application-context.xml의 기본 name space는 beans
appServlet\servlet-context.xml의 기본 name space는 mvc

 

<bean class="org.apache.commons.dbcp.BasicDataSource"
	id="dataSource"
	destroy-method="close">
	<property name="driverClassName" value="oracle.jd" />
	<property name="url" value="oracle.jd}" />
	<property name="username" value="spring" />
	<property name="password" value="spring" />
</bean>

여기서 value는 이 자료를 보는 사람에게 노출되면 안되는 정보이기때문에 properties파일을 따로 만들어서 관리 
(datasource.properties파일)

 

 

properties파일을 가져오는 방법
Namespaces 탭에 가서 context에서 제공하는 namespace 체크 -> xmlns:context="www.springframework.org/schema/context" 추가

<!-- application-context.xml -->
<!-- Root Context: defines shared resources visible to all other web components -->
<context:property-placeholder location="classpath:datasource.properties" />

<!-- datasource 빈 등록 -->
<bean class="org.apache.commons.dbcp.BasicDataSource"
	id="dataSource"
	destroy-method="close">
	<property name="driverClassName" value="${datasource.driver}" />
	<property name="url" value="${datasource.url}" />
	<property name="username" value="${datasource.username}" />
	<property name="password" value="${datasource.password}" />
</bean>

<bean class="org.mybatis.spring.SqlSessionFactoryBean"
	id="sqlSessionFactoryBean">
	 <!-- ref속성으로 dataSource빈을 참조함 -->
	<property name="dataSource" ref="dataSource"/>
		
	<!-- mybatis관련 설정파일은 target/classes에서 참조 -->
	<property name="configLocation" value="classpath:mybatis-config.xml"/>
	<property name="mapperLocations" value="classpath*:mapper/**/*-mapper.xml" />
</bean>

<!-- mybatis관련 설정파일은 target/classes에서 참조 -->
<property name="mapperLocations" value="classpath*:mapper/**/*-mapper.xml" />

 

이 부분 /** 뜻은 mapper디렉터리 밑에 경로 0개 이상, /*-mapper.xml로 끝나는 파일
여기서 파일이 복수개일때는 classpath* 이렇게 끝에 *을 꼭 붙여줌

 


dao에서 사용할 sqlSessionTemplete 생성 

dao에서 @Autowired 사용가능(bean등록했기때문에 DI 받을 수 있음)

<!-- 빈으로 만들기 위해서는 기본생성자가 있고 setter로 호출해서 접근해야함 -->
<bean class="org.mybatis.spring.SqlSessionTemplate"
	id="sqlSessionTemplate">
	<constructor-arg index="0" ref="sqlSessionFactoryBean" /> 
</bean>

 

여기까지하면 controller, service, dao, db까지 연결 준비 완료!

반응형
복사했습니다!