본문 바로가기
Spring/Spring Muzi

root-context.xml(설정파일)

by 미눅스[멘토] 2023. 7. 31.
728x90

중호샘 root-context.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:context="http://www.springframework.org/schema/context"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
		http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">
	
	<!-- Root Context: defines shared resources visible to all other web components -->
	
	<!-- 
	root-context.xml : 스프링 설정 파일
	서블릿과 필터가 공유할 수 있는 루트 스프링 컨테이너 설정
	공통 빈(Service, Repository(DAO), Database, Log)을 설정함
	공통빈(bean,객체)을 설정하는 곳으로 주로 View 지원을 제외한 bean을 설정함
	
	스프링 설정?
	view(뷰, JSP)와 관련되지 않은 객체를 정의
	Service(기능), DAO(Repository : 저장소), Database와 같은 비즈니스 로직과 관련된 설정
	 -->
	<!-- dataSource : 데이터베이스와 관련된 정보를 설정 -->
	<!-- 
	db : database(개념. 공유/저장/통합/운영). RDB(Relational DB.관계형DB)
	dbms : database management system(DB관리시스템.오라클)
	localhost=127.0.0.1=내ip주소
	xe : express(OracleXE11g.r2) => SID(sequence ID)
	 -->
	<!-- 
	BasicDataSource dataSource = new dataSource();
	dataSource.setDriverClassName("oracle.jdbc.driver.OracleDriver");
	dataSource.setUrl("jdbc:oracle:thin:@localhost:1521:xe");
	 -->
	<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" 
		destroy-method="close">
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" />
		<property name="username" value="jspexam" />
		<property name="password" value="java" />
	</bean>
	<!-- 
	데이터베이스와 연결을 맺고 끊어질 때까지의 라이프 사이클을 관리해주는 sqlSession 객체를 생성
	1) dataSource
	2) 매퍼xml의 위치 지정. classpath:/ : src/main/resources/
	 -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="mapperLocations" value="classpath:/sqlmap/**/*_SQL.xml" />
		<property name="configLocation" 
			value="/WEB-INF/mybatisAlias/mybatisAlias.xml" />
	</bean>
	
	<!-- 데이터베이스에 개별적으로 쿼리를 실행시키는 객체
		이 객체를 통해 query를 실행을 함
	 -->
	<bean id="sqlSessionTemplate"
		class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>
	
	<!-- 파일업로드 설정 시작 -->
	<bean id="multipartResolver" 
		class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		<property name="maxUploadSize" value="10485760" /><!-- bytes -->
		<property name="defaultEncoding" value="UTF-8" />
	</bean>
		<!-- 파일업로드 디렉토리 설정 -->
	<bean id="uploadPath" class="java.lang.String">
		<constructor-arg value="c:\\upload" />
	</bean>
	<!-- 파일업로드 설정 끝 -->
	<!-- 트랜잭션 관리자의 빈을 정의 -->
	<bean id="transactionManager" 
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"></property>
	</bean>
	
	<!-- 애너테이션 기반의 트랜잭션 제어를 활성화 함 -->
	<tx:annotation-driven/>
	
	
	<!-- Mapper 인터페이스 설정
	개발자가 직접 DAO를 설정하지 않아도 자동적으로 MApper 인터페이스를
	활용하는 객체를 생성하게 됨
	 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		<property name="basePackage" value="kr.or.ddit.mapper" />
	</bean>
	
	<!-- 스프링 AOP 활성화 -->
	<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
	
	<!-- kr.or.ddit.aop 패키지를 컴포넌트 스캔 대상으로 등록 -->
	<context:component-scan base-package="kr.or.ddit.aop"></context:component-scan>
</beans>

'Spring > Spring Muzi' 카테고리의 다른 글

e7e샘의 파일 업로드 원본  (0) 2023.08.01
tiles-config.xml(설정파일)  (0) 2023.07.31
log4j.xml(설정파일)  (0) 2023.07.31
web.xml설정파일  (0) 2023.07.31
pom.xml설정파일  (0) 2023.07.31