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>