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까지 연결 준비 완료!
'프로그래밍 > Spring' 카테고리의 다른 글
10.15(서버코드 수정 후 톰캣 재기동 없이 반영하기) (0) | 2020.10.15 |
---|---|
10.14(handler method, typeHandler, typeAliases, Model, 스프링 msg) (0) | 2020.10.14 |
10.12(스프링 특징 : IoC, DI, POJO, PSA, AOP) (0) | 2020.10.12 |
10.08(스프링 인코딩 필터 설정 & 파라미터) (0) | 2020.10.08 |
10.07(servlet-context설정) (0) | 2020.10.07 |