가자공부하러!

7. Spring boot Oracle DB연동(Thymeleaf, Hikari CP 활용) 본문

공부/Spring Boot

7. Spring boot Oracle DB연동(Thymeleaf, Hikari CP 활용)

오피스엑소더스 2019. 7. 23. 18:47

소스코드 : https://github.com/


1. 기초 설정 및 순서

2. pom.xml

3. application.yml

4. config

5. mapper

6. view & controller



1. 기초 설정 및 순서   


0. 목표

  > Thymeleaf와 Hikari CP를 활용한 Spring boot 프로젝트 생성 및 run


1. 실행 환경

  > spring boot version : 2.1.6

  > jdk 8

  > sts3


2

. dependencies


  > Spring Boot DevTools

  > Lombok

  > MySQL Driver

  > MyBatis Framework

  > Spring Web Starter

  > thymeleaf

- <artifactId> spring-boot-starter-thymeleaf, thymeleaf, thymeleaf-spring5, thymeleaf-layout-dialect


3. 순서

  > pom.xml : dependency, oracle jdbc repository 추가

  > application.yml

- application.property에서 확장자 변경

- 내용 작성

- server.port, spring.database.hikari, thymeleaf

  > config 작성 : OracleDBConfiguration.java

  > mapper 작성(DB) : adminMember.xml

  > view 작성 : index.html

  > controller 작성 : CommonController.java



2. pom.xml


pom.xml 소스코드 보기



3. application.yml


1. DB 설정

  > 사용 할 oracle db 정보

  > pool name (DataBase Connection Pool) 설정

  > driver class name 설정

2. thymeleaf 설정

  > prefix, suffix

application.yml 소스코드 보기


4. config


1. OracleDBConfiguration

  > @Configuration의 역할

- Spring Framwork가 구동될 때, @Configuration 파일들을 찾아서 설정값을 초기화한다.
- @Configuration 파일들은 각 파일의 Bean 내용들을 토대로 초기값을 설정해준다.
- @Bean 들은 싱글턴 패턴으로 spring framework에 등록된다.

  > Hikari CP 등록

- hikariConfig() 메소드는 hikari cp config을 spring framework에 명시해준다. 
    - spring.datasource.hikari는 application.yml에 명시된 내용이다.
- dataSource() 메소드는 hikariConfig()의 리턴값을 dataSource로 등록한다.
    - dataSource를 설정함으로써 myBatis가 hikari dbcp(DataBaseConnectionPool)을 활용할 수 있도록 연결해주는 것이다.

  > Hikari CP 정보가 담긴 dataSource 등록

- sqlSessionFactory(dataSource)는 spring framework에 등록된 dataSource를 매개변수로 받아서, sqlSessionFactoryBean을 설정하고 그 객체를 spring framework에 등록한다.
- sqlSessionFactoryBean에 매개변수로 받은 myBatis dataSource를 등록한다.
- sqlSessionFactoryBean에 쿼리문이 저장된 xml(mapper)을 매핑하여 해당 쿼리를 활용할 수 있도록한다.

- mapper 위치 : classpath:/mapper/**/**.xml

- sqlSessionTemplate에 sqlSessionFactory를 등록하여 sqlSessionTemplate을 spring framework에 등록한다.


OracleDBConfiguration.java 소스코드 보기


5. mapper      


1. 경로 : src/main/resources/mapper/admin

2. 주의 :

  > config에서 설정한 mapper 경로에 매퍼xml이 하나 이상 있어야 한다.

  > !DOCTYPE을 올바르게 설정해야 한다.

- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">

  > <mapper>태그에 namespace attribute가 존재해야 한다.

  > xml 파일은 </mapper> 태그로 끝나야 한다

1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
<mapper namespace="admin.member">
</mapper>
cs


6. view & controller    


1. view

  > 경로 : src/main/resources/tamplates

  > thymeleaf xml name space 설정 필요

1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
Spring Boot
</body>
</html>
cs


2. controller

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.fbExam.app.common.controller;
 
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
 
@Controller
 
public class CommonController {
    
    @RequestMapping("/")
    public String rootIndex() {
        return "index";
    }
}
cs







Comments