rootContext

Dogeun Lee·2023년 7월 19일
0
<?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:jdbc="http://www.springframework.org/schema/jdbc"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
		http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
		http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
		http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
	
		<bean id="realDataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
		<!-- <property name="url" value="jdbc:log4jdbc:oracle:thin:@112.220.137.37:1521:xe"/> -->
		<!-- <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/> -->
<!-- 		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value="jdbc:oracle:thin:@112.220.137.37:1521:xe"/>
		<property name="username" value=""/>
		<property name="password" value=""/> -->
		<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
		<property name="url" value=""/>
		<property name="username" value=""/>
		<property name="password" value=""/>
		
		<!-- SQL이 수행된 후 자동으로 Commit 되는것을 지정 -->
		<property name="defaultAutoCommit" value="false"/>
		
		<!-- 커넥션 풀 설정 -->
		<property name="initialSize" value="10" /> <!-- 초기 커넥션 수, 기본 0 -->
		<property name="maxTotal" value="50" /> <!-- 최대 커넥션 수, 기본 8 -->
		<property name="maxIdle" value="20" /> <!-- 유휴 상태로 존재할 수 있는 커넥션 최대 수, 기본 8 -->
		<property name="minIdle" value="10" /> <!-- 유휴 상태로 존재할 수 있는 커넥션 최소 수, 기본 0 -->
		<property name="maxWaitMillis" value="-1" /> <!-- 예외 발생 전 커넥션이 반환 될 떄 까지 대기하는 최대 시간(ms), 기본 -1(무기한) -->
			</bean>
			
			
			<!-- 23.05.01 - 03 추가 설정 등록
		log4j를 이용한 SQL 로그 출력용 bean 생성
	
		* realDataSource를 이용해서 SQL 수행 내용, 결과를 출력하는 역할
		-> realDataSource를 대체하는 역할
	 -->
	 <bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
	 	<constructor-arg ref="realDataSource" />
	 	
	 	<property name="logFormatter">
	 		<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
	 			<property name="loggingType" value="MULTI_LINE"/>
	 			<property name="sqlPrefix" value="[SQL]" />
	 		</bean>
	 	</property>
	 </bean>
			
			<!-- SqlSession : sql구문을 DB에 전달, 실행하는 객체 
			SqlSessionFactory : SqlSession을 만드는 객체 
			sqlSessionFactoryBean : mybatis 설정 파일(mybatis-config.xml)과 Connection Pool 정보를 이용하여 SqlSessionFactory를 만드는 객체 
			sqlSessionTemplate : SqlSession 객체에 트랜잭션 처리 역할이 가능하도록 하는 객체 -->

	<!-- 마이바티스 SqlSession 등록하기 (xml 방식으로 bean 등록) -->
	<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
		<!-- mybatis-config.xml 설정 불러오기 -->
		<property name="configLocation" value="classpath:mybatis-config.xml" />
		<property name="dataSource" ref="dataSource" />
	</bean>

	 <!-- 23.04.24 - 21 -->
	<!-- MyBatis 관련 Bean 생성  -->
	<!-- SqlSessionTemplate : 기본 SQL 실행 + 트랜잭션 관리 역할을 하는 SqlSession을 생성할 수 있게 하는 객체(Spring bean으로 등록해야함.) -->
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg ref="sqlSessionFactoryBean" />
	</bean>

	<!-- 스프링에서 사용하는 proxy(대변인 또는 대체자) 를 이용한 트랜잭션 제어가 안될 경우 추가적인 트랜잭션 매니저를 추가해서 문제 해결 -->
	<!-- 나중에 @transactional 을 이용해서 사용한다. -->
	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	
		<!-- 이메일 인증 -->
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="smtp.gmail.com" />
    <property name="port" value="" />
    <property name="username" value="" />
    <property name="password" value="" />
    <property name="javaMailProperties">
    	 <props>
            	<prop key="mail.smtp.starttls.enable">true</prop>
				<prop key="mail.smtp.auth">true	</prop>
				<prop key="mail.transport.protocol">smtp</prop>
				<prop key="mail.debug">true</prop>
				<prop key="mail.smtp.ssl.trust">smtp.gmail.com</prop>
				<prop key="mail.smtp.ssl.protocols">TLSv1.2</prop>
            </props>
    </property>
 </bean>

			
		<!-- 23.04.28 - 31 -->
			<!-- 
	파일 업로드를 위한 MutipartResolver 구현체 CommonsMultipartResolver  bean 등록 
	-> CommonsMultipartResolver를 bean으로 등록하면
		multipart/form-data 형식으로 요청 시  input type="file" 태그를 자동적으로 인식하여 MultipartFile 객체로 반환하고
		파일 외의 데이터(정수, 문자열 등의 텍스트 데이터)는 기존처럼 사용 가능(MultipartRequest 필요 없음)
	-->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
		 <property name="maxUploadSize" value="104857600"/>
		 <property name="maxUploadSizePerFile" value="104857600"/>
		 <property name="maxInMemorySize" value="104857600"/>
	</bean>
	
	<!-- 
		104857600 byte == 100MB
		20971520 byte == 20MB
		
		maxUploadSize 
			: 한 요청당 업로드가 허용되는 최대 용량을 바이트 단위로 설정.
			-1 은 제한이 없다는 뜻으로 이 프로퍼티를 지정하지 않을때 기본값.
		
		maxUploadSizePerFile
		 : 한 파일당 업로드가 허용되는 최대 용량을 바이트 단위로 설정.
			-1 은 제한이 없다는 뜻으로 이 프로퍼티를 지정하지 않을때 기본값.
			
		maxInMemorySize 
			: 디스크에 저장하지 않고 메모리에 유지하도록 
			허용하는 바이트 단위의 최대 용량을 설정.
			
	 		사이즈가 이보다 클 경우 이 사이즈 이상의 데이터는 파일에 저장됩니다. 
			 기본값은 10240 바이트.
	 -->	


	 
			
</beans>


profile
오대수

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

가치 있는 정보 공유해주셔서 감사합니다.

답글 달기