spring boot setting

spring boot annotation 정리

https://jeong-pro.tistory.com/151

 

11/29 spring boot + yml + hikari + mybatis + oracle

https://spring.io/projects/spring-boot

https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html

 

spring boot intelliJ 상세 세팅 (gradle)

https://mrgamza.tistory.com/726

https://www.goodsource.co.kr/34

 

스프링 부트는 내장 WAS가 있음.

따라서 따로 서버 아파치 톰캣을 설치할 필요 X, 개발 환경에 맞게 서버를 따로 구성해야 X

 

스프링 부트의 기본 커넥션 풀이 원래 Tomcat JDBC Connection Pool 이었는데 2.0.0 버전 부터 HikariCP 로 변경 되었습니다. 출처: https://goni9071.tistory.com/286 [고니의꿈]

 

그래들 버전 확인

./gradlew clean build --stacktrace

./gradlew --version

그래들 7부터 compile 삭제되고 implementation https://okky.kr/article/997902



커넥션풀 = DBCP (DB Conncetion Pool)

https://gangzzang.tistory.com/entry/%ED%86%B0%EC%BA%A3Tomcat-%EC%BB%A4%EB%84%A5%EC%85%98%ED%92%80DBCP-%EC%84%A4%EC%A0%95

  •  JDBC를 통하여 DB에 연결하기 위해서는 드라이버(Driver)를 로드하고 커넥션(connection) 객체를 받아와야 한다.
  •  JDBC를 사용하면 사용자가 요청을 할 때마다 매번 드라이버를 로드하고 커넥션 객체를 생성하여 연결하고 종료하기 때문에 매우 비효율적이다.
  •  이런 문제를 해결하기 위해서 커넥션풀(DBCP)를 사용한다.



SpringBoot 의 DB Connection Pool은 여러개. 걔 중 HikariCP.

연동법

https://hello-bryan.tistory.com/338

 

SpringBoot + JDBC(커넥션풀)사용하여 Mybatis Datasource를 연동

                      hikari(커넥션풀)을 사용하여 ~ Datasource 연동

출처:https://www.wrapuppro.com/programing/view/chpzfIy9HQAGupZ

 

  • mybatis란 무엇인가 : 자바의 객체(Object)와 SQL 사이에서 동 맵핑을 도와주는 프레임워
  • ORM(object relational mapping) : 관계형 데이터베이스에서 조회한 데이터를 Java 객체로 변환하여 리턴해 주고, Java 객체를 관계형 데이터베이스에 저장해 주는 라이브러리 혹은 기술을 말한다.

https://devlog-wjdrbs96.tistory.com/200

 

application.properties를 대신하는 yaml (properties와 yaml비교)

Spring Boot의 설정 파일로 기존에는 .properties 파일을 많이 사용했지만 표현의 한계로 인하여 최근에는 YAML 파일을 더 많이 사용합니다. 출처: https://freestrokes.tistory.com/106 [FREESTROKES DEVLOG]

https://goddaehee.tistory.com/213

 

gradle build 문제

A problem was found with the configuration of task ':bootJar' (type 'BootJar').

https://syaku.tistory.com/369

bootJar {

mainClassName = 'org.syaku.blog.Application'

}

실행할 메인 클래스가 없을때는 build.gradle에 아래와 같이 한다.

bootJar.enabled = false

 

스프링 부트 그레이들 플러그인 2.0이 되면서 기존에 있던 bootRepackage가 bootJar와 bootWar 으로 변경(Spring Boot’s new Gradle plugin)되면서 부터다.

 

yml 파일에 config넣기

https://stackoverflow.com/questions/24917194/spring-boot-inject-map-from-application-yml

http://daplus.net/java-spring-boot-application-yml%EC%97%90%EC%84%9C-%EB%A7%B5-%EC%82%BD%EC%9E%85/

 

datasource란

connection들을 모아두는 장소를 connection pool이라 하며, Datasource는 java 에서 connection pool을 지원하기 위한 인터페이스이다. Spring boot는 WAS(tomcat)가 내장되어 있다. spring boot 또한 내장되어 있는 WAS에 connection pool을 제공한다.

Spring boot는 staters를 dependency에 추가하면 자동으로 Datasource 관리를 위한 구현체를 제공한다. 버전에 따라 default로 제공하는 구현체는 다르다.

Spring boot version

1.5.14 : tomcat-jdbc

2.0.2 : HikariCP

application.properties(또는 .yml)에서 Datasource 설정이 가능하다.

https://deepweller.tistory.com/6

datasource 세부설정

https://bamdule.tistory.com/166

 

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

https://okky.kr/article/650086

 

spring boot profile 환경별 설정

https://1minute-before6pm.tistory.com/12

https://jronin.tistory.com/123

 

<Mapper 등록과 사용>

hikariCP를 java config로 설정… / java config로 하거나 yml로 하거나하는 방법이 있다?였던 듯

https://oingdaddy.tistory.com/13

mybatis의 SqlSession을 만들어줄 Config class <- dataSource 설정인듯함 ..

https://sunghs.tistory.com/83

등록된 매퍼를 사용하기 위해서는 매퍼 스캔할 수 있도록 추가 설정이 필요함 (java기반 or xml기반)

https://codingnojam.tistory.com/27

매퍼를 등록하는 방법은 기존의 전통적인 XML설정법을 사용하거나 새로운 3.0 이후의 자바설정(일명 @Configuration)을 사용하느냐에 따라 다르다.

https://mybatis.org/spring/ko/mappers.html#register

DataSourceConfig 만들기

// application.yml 에 있는 spring.datasource 를 읽어 HikariConfig에 관련된 설정을 해준다.

// hikariConfig를 기반으로 datasource 를 만들어 준다.

https://velog.io/@borab/Springboot-mybatis-mysql-%EC%84%A4%EC%A0%95

https://dahye-jeong.gitbook.io/spring/spring/2021-02-15-spring-boot/2021-02-10-boot-mybatis

 

nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException

https://devfootprint.tistory.com/38

 

spring boot+dbms+mybatis 연동

  1. build.gradle ⇒ jdbc driver, dbms’s driver, Mybatis
  2. application.yml ⇒ db접속정보, mybatis의 ~.xml파일 경로 추가
  3. @Mapper 사용해서 interface 추가
  4. 3번과 동일한 이름의 xml추가
  5. 해당 Mapper를 사용할 Controller에서 @MapperScan으로 사용대상 지정(@MapperScan(“com.tmonet…”)

https://taesan94.tistory.com/108

 

mybatis 설정을 위해 resources/mybatis-config.xml 파일 생성

https://doohwan-yoo.github.io/springboot-mybatis/

https://gigas-blog.tistory.com/169

 

oracle application.yml

https://devfunny.tistory.com/406

 

mapper 못 찾을 때

https://esaek.tistory.com/26

https://pooney.tistory.com/47

 

Reason: Failed to determine a suitable driver class

h2를 추가해주면 되긴 함.. ⇒ 우리가 코드상에 아무런 DB설정을 하지 않는다면 spring boot는 자동으로 기본적로 인-메모리 DB를 설정하게 된다.

https://okky.kr/article/650086

 

jdbc란

https://jaehoney.tistory.com/29

https://devlog-wjdrbs96.tistory.com/139

jdbc & mybatis

https://hye0-log.tistory.com/24

 

spring boot jdbc dependency

DataSourceProperties는 Spring Boot에서 autoconfigure이 가능한 속성으로 별도의 DataSource를 구현하여 Bean을 등록했다면, application.properties 내의 spring.datasource.* 속성은 적용되지 않는다.

https://www.holaxprogramming.com/2015/10/16/spring-boot-with-jdbc/

 

 단, 다음의 DataSource 설정은 꼭 필요한 경우만 하도록 하고 별도로 설정하지 않더라도 YAML 파일에 설정하고 관련 Dependency만 추가하면 spring-boot-starter-data-jpa 만 추가하면 자동으로 데이터소스가 생성됩니다.

https://wiki.data-dynamics.io/pages/viewpage.action?pageId=4227492

 

ojdbc gradle 문법

https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8/21.3.0.0