Spring/Spring MVC2

기본 설정 ② root-context.xml

제주니어 2022. 9. 2. 16:29

 

root-context.xml

 

@PropertySource()을 생략하여 driver.properties 연결

 

db.driver=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@localhost:1521:xe
db.username=WEB
db.password=WEB

 

<context:property-placeholder location="classpath:driver.properties" />

 

<import> 요소를 사용하여 다른 XML 설정 연결

 

<import resource="mybatis-context.xml"/>
<import resource="security-context.xml"/>
  • import 요소를 사용해 xml 연결할 수 있어 여러 개 설정이 가능하다. 

 

mybatis-context.xml

mybatis-config.xml에 있는 속성들을 bean으로 등록하는 방법을 사용하기

 

BasicDataSource

 

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
        destroy-method="close"
        p:driverClassName="${db.driver}"
        p:url="${db.url}"
        p:username="${db.username}"
        p:password="${db.password}"
/>

 

Configuration

 

<bean id="mybatisConfig" class="org.apache.ibatis.session.Configuration"
        p:jdbcTypeForNull="NULL"
/>
  • 빈의 속성을 직접 적용
  • p:mapperLocations="classpath:mappers/**/*.xml" ▶ ** : 몇 단계 아래여도 상관없다. 

 

SqlSessionFactoryBean

 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
        p:dataSource-ref="dataSource"
        p:configuration-ref="mybatisConfig"
        p:typeAliasesPackage="com.kh.mvc.*.model.vo"
        p:mapperLocations="classpath:mappers/**/*.xml"
/>

 

SqlSessionTemplate

 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"
        c:sqlSessionFactory-ref="sqlSessionFactory"
/>

 

MapperScannerConfigurer

 

<bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer" 
        p:basePackage="com.kh.mvc.*.model.mapper"
/>

 

DataSourceTransactionManager

 

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
    p:dataSource-ref="dataSource"
/>

트랜잭션 처리 방법

① 트랜잭션 매니저를 빈으로 등록하기 (mybatis-context.xml)

② @Transactional을 사용해서 트랜잭션 처리가 될 수 있도록  <tx:annotation-driven /> 요소를 설정 파일(servlet-context.xml)에 등록한다. 

 

 

security-context.xml

 

암호화 위한 BCryptPasswordEncoder 빈 등록
<bean id="bcryptPasswordEncoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>