Java/Spring

[Spring] Database 연결흐름(HikariCP)

퓨어맨 2022. 7. 13. 01:03

web.xml

-> Deployment Descriptor

-> 배치 서술자

-> 웹 프로젝트에 전반적인 내용들을 알려주는 설명 파일

-> ex) 어디에 어떤 jsp가 존재하는지

 

=============================================

root-context

: DB와 설정과 관련된 내용을 작성하는 파일

servlet-context

: spring framework와 관련된 설정파일

 

 

기존
변경

 

 

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:mybatis="http://mybatis.org/schema/mybatis-spring" 
	xsi:schemaLocation="
	http://mybatis.org/schema/mybatis-spring 
	http://mybatis.org/schema/mybatis-spring.xsd 
	http://www.springframework.org/schema/beans 
	https://www.springframework.org/schema/beans/spring-beans.xsd">
	<!-- 위에 있는 내용 : 해당하는 xml에 어떤 태그들을 사용할 수 있는지 정의해놓은 스키마 파일들을 로드하는 코드 -->
    
	<!-- Root Context: defines shared resources visible to all other web components -->
	<!-- JDBC(=Connection) 정의하는 공간 -->
	<!-- DBCP / HikariCP 설정 잡아주기 -->
	<!-- bean : 객체를 생성하는 태그 -->
	<!-- id attribute : 변수명 지정  -->
	<!-- class attribute : 어떤 클래스를 생성할 건지 경로까지 잡아주기 -->
	<bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
	    <!-- setter메소드 사용 -->
	    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
	    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mysql"/> 
	    <property name="username" value="root"/> 
	    <property name="password" value="12345"/> 
	</bean>
	
	<!-- DBCP만들어주는 클래스 생성 -->
	<bean id= "hikariDataSource" class="com.zaxxer.hikari.HikariDataSource">
	    <!-- constructor-arg : 생성자 사용하는 태그 -->
	    <!-- ref : reference약자 / 위에 있는 클래스 변수명을 작성! -->
		<constructor-arg ref="hikariConfig"/>	    
	</bean>
		
		
	<!-- DI : Dependency Injection(의존성 주입) -->
	<!-- DI를 사용하면 클래스 간의 결합도가 낮아진다 : 하나의 클래스를 변경했다고 해서 다른 클래스가 영향을 받지 않는다. -->
	<!-- 1) setter메소드를 사용해서 구현 -->
	<!-- 2) constructor를 사용해서 구현 -->	
		
	<!-- SqlSessionFactory / mybatis-spring api에서 제공
	: connection 가져다가 CRUD작업을 할 수 있게끔 하는 클래스 -->
	<bean class="org.mybatis.spring.SqlSessionFactoryBean">
	    <property name="dataSource" ref="hikariDataSource"/>
	</bean>	
		
	<!-- mapper 파일 연결에 대한 설정값을 추가해야함 -->	
	<!-- mapper파일이 있는 패키지를 통채로 스캔할 수 있게끔 코드로 설정 -->
	<mybatis:scan base-package = "kr.smhrd.mapper"/>
		
		
</beans>