프로그래밍/spring boot

[스프링부트] 실전! 스프링 부트와 JPA 활용1 #1-2 라이브러리 살펴보기

aSpring 2023. 10. 24. 10:23
728x90
728x90
※ 본 포스팅은 김영한 강사님의 인프런 '실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발' 강의를 들으며 작성한 수강일지 입니다.

| 프로젝트 환경설정

1. 프로젝트 생성
2. 라이브러리 살펴보기
3. View 환경설정
4. H2 데이터베이스 설치
5. JPA와 DB 설정, 동작 확인

 

2. 라이브러리 살펴보기

  • gradle 의존관계 살펴보기

  • data jpa 추가하고 등등 했는데.. 어디까지 당겨오는지 알 수 있는 방법
    • terminal에서 해당 프로젝트의 경로까지 진입
./gradlew dependencies

-> 이렇게 하면 의존 관계를 쭉쭉 적어 주는데 너무 많으니까 접어 둠

더보기
Welcome to Gradle 8.3!

Here are the highlights of this release:
 - Faster Java compilation
 - Reduced memory usage
 - Support for running on Java 20

For more details see https://docs.gradle.org/8.3/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

> Task :dependencies

------------------------------------------------------------
Root project 'jpashop'
------------------------------------------------------------

annotationProcessor - Annotation processors and their dependencies for source set 'main'.
\--- org.projectlombok:lombok -> 1.18.30

bootArchives - Configuration for Spring Boot archive artifacts. (n)
No dependencies

compileClasspath - Compile classpath for source set 'main'.
+--- org.projectlombok:lombok -> 1.18.30
+--- org.springframework.boot:spring-boot-starter-data-jpa -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter-aop:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17
|    |    |    +--- org.springframework.boot:spring-boot:2.7.17
|    |    |    |    +--- org.springframework:spring-core:5.3.30
|    |    |    |    |    \--- org.springframework:spring-jcl:5.3.30
|    |    |    |    \--- org.springframework:spring-context:5.3.30
|    |    |    |         +--- org.springframework:spring-aop:5.3.30
|    |    |    |         |    +--- org.springframework:spring-beans:5.3.30
|    |    |    |         |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         \--- org.springframework:spring-expression:5.3.30
|    |    |    |              \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.7.17
|    |    |    |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
|    |    |    +--- org.springframework.boot:spring-boot-starter-logging:2.7.17
|    |    |    |    +--- ch.qos.logback:logback-classic:1.2.12
|    |    |    |    |    +--- ch.qos.logback:logback-core:1.2.12
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
|    |    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
|    |    |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
|    |    |    |         \--- org.slf4j:slf4j-api:1.7.36
|    |    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    \--- org.yaml:snakeyaml:1.30
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    \--- org.aspectj:aspectjweaver:1.9.7
|    +--- org.springframework.boot:spring-boot-starter-jdbc:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- com.zaxxer:HikariCP:4.0.3
|    |    |    \--- org.slf4j:slf4j-api:1.7.30 -> 1.7.36
|    |    \--- org.springframework:spring-jdbc:5.3.30
|    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |         \--- org.springframework:spring-tx:5.3.30
|    |              +--- org.springframework:spring-beans:5.3.30 (*)
|    |              \--- org.springframework:spring-core:5.3.30 (*)
|    +--- jakarta.transaction:jakarta.transaction-api:1.3.3
|    +--- jakarta.persistence:jakarta.persistence-api:2.2.3
|    +--- org.hibernate:hibernate-core:5.6.15.Final
|    |    +--- org.jboss.logging:jboss-logging:3.4.3.Final
|    |    +--- net.bytebuddy:byte-buddy:1.12.18 -> 1.12.23
|    |    +--- antlr:antlr:2.7.7
|    |    +--- org.jboss:jandex:2.4.2.Final
|    |    +--- com.fasterxml:classmate:1.5.1
|    |    +--- org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
|    |    |    \--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.3.Final
|    |    \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 -> 2.3.8
|    |         +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|    |         +--- org.glassfish.jaxb:txw2:2.3.8
|    |         \--- com.sun.istack:istack-commons-runtime:3.0.12
|    +--- org.springframework.data:spring-data-jpa:2.7.17
|    |    +--- org.springframework.data:spring-data-commons:2.7.17
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    +--- org.springframework:spring-orm:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-jdbc:5.3.30 (*)
|    |    |    \--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-context:5.3.30 (*)
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    +--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    \--- org.springframework:spring-aspects:5.3.30
|         \--- org.aspectj:aspectjweaver:1.9.7
+--- org.springframework.boot:spring-boot-starter-thymeleaf -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
|    |    +--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.5.RELEASE
|    |    |    +--- org.unbescape:unbescape:1.1.6.RELEASE
|    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    \--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
|         +--- org.thymeleaf:thymeleaf:3.0.11.RELEASE -> 3.0.15.RELEASE (*)
|         \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
\--- org.springframework.boot:spring-boot-starter-web -> 2.7.17
     +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
     +--- org.springframework.boot:spring-boot-starter-json:2.7.17
     |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
     |    +--- org.springframework:spring-web:5.3.30
     |    |    +--- org.springframework:spring-beans:5.3.30 (*)
     |    |    \--- org.springframework:spring-core:5.3.30 (*)
     |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5
     |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5
     |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (c)
     |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (c)
     |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (c)
     |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5 (c)
     |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5 (c)
     |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5 (c)
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5
     |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
     |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
     |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5
     |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
     |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
     |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
     |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5
     |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
     |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
     |         \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
     +--- org.springframework.boot:spring-boot-starter-tomcat:2.7.17
     |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
     |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
     |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.82
     |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.82
     |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
     +--- org.springframework:spring-web:5.3.30 (*)
     \--- org.springframework:spring-webmvc:5.3.30
          +--- org.springframework:spring-aop:5.3.30 (*)
          +--- org.springframework:spring-beans:5.3.30 (*)
          +--- org.springframework:spring-context:5.3.30 (*)
          +--- org.springframework:spring-core:5.3.30 (*)
          +--- org.springframework:spring-expression:5.3.30 (*)
          \--- org.springframework:spring-web:5.3.30 (*)

compileOnly - Compile-only dependencies for the 'main' feature. (n)
\--- org.projectlombok:lombok (n)

default - Configuration for default artifacts. (n)
No dependencies

developmentOnly - Configuration for development-only dependencies such as Spring Boot's DevTools.
No dependencies

implementation - Implementation dependencies for the 'main' feature. (n)
+--- org.springframework.boot:spring-boot-starter-data-jpa (n)
+--- org.springframework.boot:spring-boot-starter-thymeleaf (n)
\--- org.springframework.boot:spring-boot-starter-web (n)

mainSourceElements - List of source directories contained in the Main SourceSet. (n)
No dependencies

productionRuntimeClasspath
+--- org.springframework.boot:spring-boot-starter-data-jpa -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter-aop:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17
|    |    |    +--- org.springframework.boot:spring-boot:2.7.17
|    |    |    |    +--- org.springframework:spring-core:5.3.30
|    |    |    |    |    \--- org.springframework:spring-jcl:5.3.30
|    |    |    |    \--- org.springframework:spring-context:5.3.30
|    |    |    |         +--- org.springframework:spring-aop:5.3.30
|    |    |    |         |    +--- org.springframework:spring-beans:5.3.30
|    |    |    |         |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         \--- org.springframework:spring-expression:5.3.30
|    |    |    |              \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.7.17
|    |    |    |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
|    |    |    +--- org.springframework.boot:spring-boot-starter-logging:2.7.17
|    |    |    |    +--- ch.qos.logback:logback-classic:1.2.12
|    |    |    |    |    +--- ch.qos.logback:logback-core:1.2.12
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
|    |    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
|    |    |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
|    |    |    |         \--- org.slf4j:slf4j-api:1.7.36
|    |    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    \--- org.yaml:snakeyaml:1.30
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    \--- org.aspectj:aspectjweaver:1.9.7
|    +--- org.springframework.boot:spring-boot-starter-jdbc:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- com.zaxxer:HikariCP:4.0.3
|    |    |    \--- org.slf4j:slf4j-api:1.7.30 -> 1.7.36
|    |    \--- org.springframework:spring-jdbc:5.3.30
|    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |         \--- org.springframework:spring-tx:5.3.30
|    |              +--- org.springframework:spring-beans:5.3.30 (*)
|    |              \--- org.springframework:spring-core:5.3.30 (*)
|    +--- jakarta.transaction:jakarta.transaction-api:1.3.3
|    +--- jakarta.persistence:jakarta.persistence-api:2.2.3
|    +--- org.hibernate:hibernate-core:5.6.15.Final
|    |    +--- org.jboss.logging:jboss-logging:3.4.3.Final
|    |    +--- net.bytebuddy:byte-buddy:1.12.18 -> 1.12.23
|    |    +--- antlr:antlr:2.7.7
|    |    +--- org.jboss:jandex:2.4.2.Final
|    |    +--- com.fasterxml:classmate:1.5.1
|    |    +--- org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
|    |    |    \--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.3.Final
|    |    \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 -> 2.3.8
|    |         +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|    |         +--- org.glassfish.jaxb:txw2:2.3.8
|    |         +--- com.sun.istack:istack-commons-runtime:3.0.12
|    |         \--- com.sun.activation:jakarta.activation:1.2.2
|    +--- org.springframework.data:spring-data-jpa:2.7.17
|    |    +--- org.springframework.data:spring-data-commons:2.7.17
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    +--- org.springframework:spring-orm:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-jdbc:5.3.30 (*)
|    |    |    \--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-context:5.3.30 (*)
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    +--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    \--- org.springframework:spring-aspects:5.3.30
|         \--- org.aspectj:aspectjweaver:1.9.7
+--- org.springframework.boot:spring-boot-starter-thymeleaf -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
|    |    +--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.5.RELEASE
|    |    |    +--- org.unbescape:unbescape:1.1.6.RELEASE
|    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    \--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
|         +--- org.thymeleaf:thymeleaf:3.0.11.RELEASE -> 3.0.15.RELEASE (*)
|         \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
+--- org.springframework.boot:spring-boot-starter-web -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.springframework.boot:spring-boot-starter-json:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- org.springframework:spring-web:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5 (c)
|    |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5 (c)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |         \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    +--- org.springframework.boot:spring-boot-starter-tomcat:2.7.17
|    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.82
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.82
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    +--- org.springframework:spring-web:5.3.30 (*)
|    \--- org.springframework:spring-webmvc:5.3.30
|         +--- org.springframework:spring-aop:5.3.30 (*)
|         +--- org.springframework:spring-beans:5.3.30 (*)
|         +--- org.springframework:spring-context:5.3.30 (*)
|         +--- org.springframework:spring-core:5.3.30 (*)
|         +--- org.springframework:spring-expression:5.3.30 (*)
|         \--- org.springframework:spring-web:5.3.30 (*)
\--- com.h2database:h2 -> 2.1.214

runtimeClasspath - Runtime classpath of source set 'main'.
+--- org.springframework.boot:spring-boot-starter-data-jpa -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter-aop:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17
|    |    |    +--- org.springframework.boot:spring-boot:2.7.17
|    |    |    |    +--- org.springframework:spring-core:5.3.30
|    |    |    |    |    \--- org.springframework:spring-jcl:5.3.30
|    |    |    |    \--- org.springframework:spring-context:5.3.30
|    |    |    |         +--- org.springframework:spring-aop:5.3.30
|    |    |    |         |    +--- org.springframework:spring-beans:5.3.30
|    |    |    |         |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         \--- org.springframework:spring-expression:5.3.30
|    |    |    |              \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.7.17
|    |    |    |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
|    |    |    +--- org.springframework.boot:spring-boot-starter-logging:2.7.17
|    |    |    |    +--- ch.qos.logback:logback-classic:1.2.12
|    |    |    |    |    +--- ch.qos.logback:logback-core:1.2.12
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
|    |    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
|    |    |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
|    |    |    |         \--- org.slf4j:slf4j-api:1.7.36
|    |    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    \--- org.yaml:snakeyaml:1.30
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    \--- org.aspectj:aspectjweaver:1.9.7
|    +--- org.springframework.boot:spring-boot-starter-jdbc:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- com.zaxxer:HikariCP:4.0.3
|    |    |    \--- org.slf4j:slf4j-api:1.7.30 -> 1.7.36
|    |    \--- org.springframework:spring-jdbc:5.3.30
|    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |         \--- org.springframework:spring-tx:5.3.30
|    |              +--- org.springframework:spring-beans:5.3.30 (*)
|    |              \--- org.springframework:spring-core:5.3.30 (*)
|    +--- jakarta.transaction:jakarta.transaction-api:1.3.3
|    +--- jakarta.persistence:jakarta.persistence-api:2.2.3
|    +--- org.hibernate:hibernate-core:5.6.15.Final
|    |    +--- org.jboss.logging:jboss-logging:3.4.3.Final
|    |    +--- net.bytebuddy:byte-buddy:1.12.18 -> 1.12.23
|    |    +--- antlr:antlr:2.7.7
|    |    +--- org.jboss:jandex:2.4.2.Final
|    |    +--- com.fasterxml:classmate:1.5.1
|    |    +--- org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
|    |    |    \--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.3.Final
|    |    \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 -> 2.3.8
|    |         +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|    |         +--- org.glassfish.jaxb:txw2:2.3.8
|    |         +--- com.sun.istack:istack-commons-runtime:3.0.12
|    |         \--- com.sun.activation:jakarta.activation:1.2.2
|    +--- org.springframework.data:spring-data-jpa:2.7.17
|    |    +--- org.springframework.data:spring-data-commons:2.7.17
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    +--- org.springframework:spring-orm:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-jdbc:5.3.30 (*)
|    |    |    \--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-context:5.3.30 (*)
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    +--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    \--- org.springframework:spring-aspects:5.3.30
|         \--- org.aspectj:aspectjweaver:1.9.7
+--- org.springframework.boot:spring-boot-starter-thymeleaf -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
|    |    +--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.5.RELEASE
|    |    |    +--- org.unbescape:unbescape:1.1.6.RELEASE
|    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    \--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
|         +--- org.thymeleaf:thymeleaf:3.0.11.RELEASE -> 3.0.15.RELEASE (*)
|         \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
+--- org.springframework.boot:spring-boot-starter-web -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.springframework.boot:spring-boot-starter-json:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- org.springframework:spring-web:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5 (c)
|    |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5 (c)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |         \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    +--- org.springframework.boot:spring-boot-starter-tomcat:2.7.17
|    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.82
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.82
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    +--- org.springframework:spring-web:5.3.30 (*)
|    \--- org.springframework:spring-webmvc:5.3.30
|         +--- org.springframework:spring-aop:5.3.30 (*)
|         +--- org.springframework:spring-beans:5.3.30 (*)
|         +--- org.springframework:spring-context:5.3.30 (*)
|         +--- org.springframework:spring-core:5.3.30 (*)
|         +--- org.springframework:spring-expression:5.3.30 (*)
|         \--- org.springframework:spring-web:5.3.30 (*)
\--- com.h2database:h2 -> 2.1.214

runtimeElements - Runtime elements for the 'main' feature. (n)
No dependencies

runtimeOnly - Runtime-only dependencies for the 'main' feature. (n)
\--- com.h2database:h2 (n)

testAnnotationProcessor - Annotation processors and their dependencies for source set 'test'.
No dependencies

testCompileClasspath - Compile classpath for source set 'test'.
+--- org.springframework.boot:spring-boot-starter-data-jpa -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter-aop:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17
|    |    |    +--- org.springframework.boot:spring-boot:2.7.17
|    |    |    |    +--- org.springframework:spring-core:5.3.30
|    |    |    |    |    \--- org.springframework:spring-jcl:5.3.30
|    |    |    |    \--- org.springframework:spring-context:5.3.30
|    |    |    |         +--- org.springframework:spring-aop:5.3.30
|    |    |    |         |    +--- org.springframework:spring-beans:5.3.30
|    |    |    |         |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         \--- org.springframework:spring-expression:5.3.30
|    |    |    |              \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.7.17
|    |    |    |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
|    |    |    +--- org.springframework.boot:spring-boot-starter-logging:2.7.17
|    |    |    |    +--- ch.qos.logback:logback-classic:1.2.12
|    |    |    |    |    +--- ch.qos.logback:logback-core:1.2.12
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
|    |    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
|    |    |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
|    |    |    |         \--- org.slf4j:slf4j-api:1.7.36
|    |    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    \--- org.yaml:snakeyaml:1.30
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    \--- org.aspectj:aspectjweaver:1.9.7
|    +--- org.springframework.boot:spring-boot-starter-jdbc:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- com.zaxxer:HikariCP:4.0.3
|    |    |    \--- org.slf4j:slf4j-api:1.7.30 -> 1.7.36
|    |    \--- org.springframework:spring-jdbc:5.3.30
|    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |         \--- org.springframework:spring-tx:5.3.30
|    |              +--- org.springframework:spring-beans:5.3.30 (*)
|    |              \--- org.springframework:spring-core:5.3.30 (*)
|    +--- jakarta.transaction:jakarta.transaction-api:1.3.3
|    +--- jakarta.persistence:jakarta.persistence-api:2.2.3
|    +--- org.hibernate:hibernate-core:5.6.15.Final
|    |    +--- org.jboss.logging:jboss-logging:3.4.3.Final
|    |    +--- net.bytebuddy:byte-buddy:1.12.18 -> 1.12.23
|    |    +--- antlr:antlr:2.7.7
|    |    +--- org.jboss:jandex:2.4.2.Final
|    |    +--- com.fasterxml:classmate:1.5.1
|    |    +--- org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
|    |    |    \--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.3.Final
|    |    \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 -> 2.3.8
|    |         +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|    |         |    \--- jakarta.activation:jakarta.activation-api:1.2.2
|    |         +--- org.glassfish.jaxb:txw2:2.3.8
|    |         \--- com.sun.istack:istack-commons-runtime:3.0.12
|    +--- org.springframework.data:spring-data-jpa:2.7.17
|    |    +--- org.springframework.data:spring-data-commons:2.7.17
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    +--- org.springframework:spring-orm:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-jdbc:5.3.30 (*)
|    |    |    \--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-context:5.3.30 (*)
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    +--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    \--- org.springframework:spring-aspects:5.3.30
|         \--- org.aspectj:aspectjweaver:1.9.7
+--- org.springframework.boot:spring-boot-starter-thymeleaf -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
|    |    +--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.5.RELEASE
|    |    |    +--- org.unbescape:unbescape:1.1.6.RELEASE
|    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    \--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
|         +--- org.thymeleaf:thymeleaf:3.0.11.RELEASE -> 3.0.15.RELEASE (*)
|         \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
+--- org.springframework.boot:spring-boot-starter-web -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.springframework.boot:spring-boot-starter-json:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- org.springframework:spring-web:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5 (c)
|    |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5 (c)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |         \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    +--- org.springframework.boot:spring-boot-starter-tomcat:2.7.17
|    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.82
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.82
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    +--- org.springframework:spring-web:5.3.30 (*)
|    \--- org.springframework:spring-webmvc:5.3.30
|         +--- org.springframework:spring-aop:5.3.30 (*)
|         +--- org.springframework:spring-beans:5.3.30 (*)
|         +--- org.springframework:spring-context:5.3.30 (*)
|         +--- org.springframework:spring-core:5.3.30 (*)
|         +--- org.springframework:spring-expression:5.3.30 (*)
|         \--- org.springframework:spring-web:5.3.30 (*)
\--- org.springframework.boot:spring-boot-starter-test -> 2.7.17
     +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
     +--- org.springframework.boot:spring-boot-test:2.7.17
     |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
     +--- org.springframework.boot:spring-boot-test-autoconfigure:2.7.17
     |    +--- org.springframework.boot:spring-boot:2.7.17 (*)
     |    +--- org.springframework.boot:spring-boot-test:2.7.17 (*)
     |    \--- org.springframework.boot:spring-boot-autoconfigure:2.7.17 (*)
     +--- com.jayway.jsonpath:json-path:2.7.0
     |    +--- net.minidev:json-smart:2.4.7 -> 2.4.11
     |    |    \--- net.minidev:accessors-smart:2.4.11
     |    |         \--- org.ow2.asm:asm:9.3
     |    \--- org.slf4j:slf4j-api:1.7.33 -> 1.7.36
     +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 (*)
     +--- org.assertj:assertj-core:3.22.0
     +--- org.hamcrest:hamcrest:2.2
     +--- org.junit.jupiter:junit-jupiter:5.8.2
     |    +--- org.junit:junit-bom:5.8.2
     |    |    +--- org.junit.jupiter:junit-jupiter:5.8.2 (c)
     |    |    +--- org.junit.jupiter:junit-jupiter-api:5.8.2 (c)
     |    |    +--- org.junit.jupiter:junit-jupiter-params:5.8.2 (c)
     |    |    \--- org.junit.platform:junit-platform-commons:1.8.2 (c)
     |    +--- org.junit.jupiter:junit-jupiter-api:5.8.2
     |    |    +--- org.junit:junit-bom:5.8.2 (*)
     |    |    +--- org.opentest4j:opentest4j:1.2.0
     |    |    +--- org.junit.platform:junit-platform-commons:1.8.2
     |    |    |    +--- org.junit:junit-bom:5.8.2 (*)
     |    |    |    \--- org.apiguardian:apiguardian-api:1.1.2
     |    |    \--- org.apiguardian:apiguardian-api:1.1.2
     |    \--- org.junit.jupiter:junit-jupiter-params:5.8.2
     |         +--- org.junit:junit-bom:5.8.2 (*)
     |         +--- org.junit.jupiter:junit-jupiter-api:5.8.2 (*)
     |         \--- org.apiguardian:apiguardian-api:1.1.2
     +--- org.mockito:mockito-core:4.5.1
     |    +--- net.bytebuddy:byte-buddy:1.12.9 -> 1.12.23
     |    \--- net.bytebuddy:byte-buddy-agent:1.12.9 -> 1.12.23
     +--- org.mockito:mockito-junit-jupiter:4.5.1
     |    \--- org.mockito:mockito-core:4.5.1 (*)
     +--- org.skyscreamer:jsonassert:1.5.1
     |    \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1
     +--- org.springframework:spring-core:5.3.30 (*)
     +--- org.springframework:spring-test:5.3.30
     |    \--- org.springframework:spring-core:5.3.30 (*)
     \--- org.xmlunit:xmlunit-core:2.9.1

testCompileOnly - Compile only dependencies for source set 'test'. (n)
No dependencies

testImplementation - Implementation only dependencies for source set 'test'. (n)
\--- org.springframework.boot:spring-boot-starter-test (n)

testRuntimeClasspath - Runtime classpath of source set 'test'.
+--- org.springframework.boot:spring-boot-starter-data-jpa -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter-aop:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17
|    |    |    +--- org.springframework.boot:spring-boot:2.7.17
|    |    |    |    +--- org.springframework:spring-core:5.3.30
|    |    |    |    |    \--- org.springframework:spring-jcl:5.3.30
|    |    |    |    \--- org.springframework:spring-context:5.3.30
|    |    |    |         +--- org.springframework:spring-aop:5.3.30
|    |    |    |         |    +--- org.springframework:spring-beans:5.3.30
|    |    |    |         |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    |         \--- org.springframework:spring-expression:5.3.30
|    |    |    |              \--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework.boot:spring-boot-autoconfigure:2.7.17
|    |    |    |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
|    |    |    +--- org.springframework.boot:spring-boot-starter-logging:2.7.17
|    |    |    |    +--- ch.qos.logback:logback-classic:1.2.12
|    |    |    |    |    +--- ch.qos.logback:logback-core:1.2.12
|    |    |    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    |    |    +--- org.apache.logging.log4j:log4j-to-slf4j:2.17.2
|    |    |    |    |    +--- org.slf4j:slf4j-api:1.7.35 -> 1.7.36
|    |    |    |    |    \--- org.apache.logging.log4j:log4j-api:2.17.2
|    |    |    |    \--- org.slf4j:jul-to-slf4j:1.7.36
|    |    |    |         \--- org.slf4j:slf4j-api:1.7.36
|    |    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    \--- org.yaml:snakeyaml:1.30
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    \--- org.aspectj:aspectjweaver:1.9.7
|    +--- org.springframework.boot:spring-boot-starter-jdbc:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- com.zaxxer:HikariCP:4.0.3
|    |    |    \--- org.slf4j:slf4j-api:1.7.30 -> 1.7.36
|    |    \--- org.springframework:spring-jdbc:5.3.30
|    |         +--- org.springframework:spring-beans:5.3.30 (*)
|    |         +--- org.springframework:spring-core:5.3.30 (*)
|    |         \--- org.springframework:spring-tx:5.3.30
|    |              +--- org.springframework:spring-beans:5.3.30 (*)
|    |              \--- org.springframework:spring-core:5.3.30 (*)
|    +--- jakarta.transaction:jakarta.transaction-api:1.3.3
|    +--- jakarta.persistence:jakarta.persistence-api:2.2.3
|    +--- org.hibernate:hibernate-core:5.6.15.Final
|    |    +--- org.jboss.logging:jboss-logging:3.4.3.Final
|    |    +--- net.bytebuddy:byte-buddy:1.12.18 -> 1.12.23
|    |    +--- antlr:antlr:2.7.7
|    |    +--- org.jboss:jandex:2.4.2.Final
|    |    +--- com.fasterxml:classmate:1.5.1
|    |    +--- org.hibernate.common:hibernate-commons-annotations:5.1.2.Final
|    |    |    \--- org.jboss.logging:jboss-logging:3.3.2.Final -> 3.4.3.Final
|    |    \--- org.glassfish.jaxb:jaxb-runtime:2.3.1 -> 2.3.8
|    |         +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3
|    |         |    \--- jakarta.activation:jakarta.activation-api:1.2.2
|    |         +--- org.glassfish.jaxb:txw2:2.3.8
|    |         +--- com.sun.istack:istack-commons-runtime:3.0.12
|    |         \--- com.sun.activation:jakarta.activation:1.2.2
|    +--- org.springframework.data:spring-data-jpa:2.7.17
|    |    +--- org.springframework.data:spring-data-commons:2.7.17
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    |    +--- org.springframework:spring-orm:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    |    +--- org.springframework:spring-jdbc:5.3.30 (*)
|    |    |    \--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-context:5.3.30 (*)
|    |    +--- org.springframework:spring-aop:5.3.30 (*)
|    |    +--- org.springframework:spring-tx:5.3.30 (*)
|    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    +--- org.springframework:spring-core:5.3.30 (*)
|    |    \--- org.slf4j:slf4j-api:1.7.32 -> 1.7.36
|    \--- org.springframework:spring-aspects:5.3.30
|         \--- org.aspectj:aspectjweaver:1.9.7
+--- org.springframework.boot:spring-boot-starter-thymeleaf -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.thymeleaf:thymeleaf-spring5:3.0.15.RELEASE
|    |    +--- org.thymeleaf:thymeleaf:3.0.15.RELEASE
|    |    |    +--- org.attoparser:attoparser:2.0.5.RELEASE
|    |    |    +--- org.unbescape:unbescape:1.1.6.RELEASE
|    |    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    |    \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
|    \--- org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.4.RELEASE
|         +--- org.thymeleaf:thymeleaf:3.0.11.RELEASE -> 3.0.15.RELEASE (*)
|         \--- org.slf4j:slf4j-api:1.7.25 -> 1.7.36
+--- org.springframework.boot:spring-boot-starter-web -> 2.7.17
|    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    +--- org.springframework.boot:spring-boot-starter-json:2.7.17
|    |    +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
|    |    +--- org.springframework:spring-web:5.3.30
|    |    |    +--- org.springframework:spring-beans:5.3.30 (*)
|    |    |    \--- org.springframework:spring-core:5.3.30 (*)
|    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5 (c)
|    |    |    |         +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5 (c)
|    |    |    |         \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5 (c)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5
|    |    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    +--- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.13.5
|    |    |    +--- com.fasterxml.jackson.core:jackson-annotations:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |    |    +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |    |    \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    |    \--- com.fasterxml.jackson.module:jackson-module-parameter-names:2.13.5
|    |         +--- com.fasterxml.jackson.core:jackson-core:2.13.5 (*)
|    |         +--- com.fasterxml.jackson.core:jackson-databind:2.13.5 (*)
|    |         \--- com.fasterxml.jackson:jackson-bom:2.13.5 (*)
|    +--- org.springframework.boot:spring-boot-starter-tomcat:2.7.17
|    |    +--- jakarta.annotation:jakarta.annotation-api:1.3.5
|    |    +--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    |    +--- org.apache.tomcat.embed:tomcat-embed-el:9.0.82
|    |    \--- org.apache.tomcat.embed:tomcat-embed-websocket:9.0.82
|    |         \--- org.apache.tomcat.embed:tomcat-embed-core:9.0.82
|    +--- org.springframework:spring-web:5.3.30 (*)
|    \--- org.springframework:spring-webmvc:5.3.30
|         +--- org.springframework:spring-aop:5.3.30 (*)
|         +--- org.springframework:spring-beans:5.3.30 (*)
|         +--- org.springframework:spring-context:5.3.30 (*)
|         +--- org.springframework:spring-core:5.3.30 (*)
|         +--- org.springframework:spring-expression:5.3.30 (*)
|         \--- org.springframework:spring-web:5.3.30 (*)
+--- com.h2database:h2 -> 2.1.214
\--- org.springframework.boot:spring-boot-starter-test -> 2.7.17
     +--- org.springframework.boot:spring-boot-starter:2.7.17 (*)
     +--- org.springframework.boot:spring-boot-test:2.7.17
     |    \--- org.springframework.boot:spring-boot:2.7.17 (*)
     +--- org.springframework.boot:spring-boot-test-autoconfigure:2.7.17
     |    +--- org.springframework.boot:spring-boot:2.7.17 (*)
     |    +--- org.springframework.boot:spring-boot-test:2.7.17 (*)
     |    \--- org.springframework.boot:spring-boot-autoconfigure:2.7.17 (*)
     +--- com.jayway.jsonpath:json-path:2.7.0
     |    +--- net.minidev:json-smart:2.4.7 -> 2.4.11
     |    |    \--- net.minidev:accessors-smart:2.4.11
     |    |         \--- org.ow2.asm:asm:9.3
     |    \--- org.slf4j:slf4j-api:1.7.33 -> 1.7.36
     +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.3 (*)
     +--- org.assertj:assertj-core:3.22.0
     +--- org.hamcrest:hamcrest:2.2
     +--- org.junit.jupiter:junit-jupiter:5.8.2
     |    +--- org.junit:junit-bom:5.8.2
     |    |    +--- org.junit.jupiter:junit-jupiter:5.8.2 (c)
     |    |    +--- org.junit.jupiter:junit-jupiter-api:5.8.2 (c)
     |    |    +--- org.junit.jupiter:junit-jupiter-engine:5.8.2 (c)
     |    |    +--- org.junit.jupiter:junit-jupiter-params:5.8.2 (c)
     |    |    +--- org.junit.platform:junit-platform-commons:1.8.2 (c)
     |    |    \--- org.junit.platform:junit-platform-engine:1.8.2 (c)
     |    +--- org.junit.jupiter:junit-jupiter-api:5.8.2
     |    |    +--- org.junit:junit-bom:5.8.2 (*)
     |    |    +--- org.opentest4j:opentest4j:1.2.0
     |    |    \--- org.junit.platform:junit-platform-commons:1.8.2
     |    |         \--- org.junit:junit-bom:5.8.2 (*)
     |    +--- org.junit.jupiter:junit-jupiter-params:5.8.2
     |    |    +--- org.junit:junit-bom:5.8.2 (*)
     |    |    \--- org.junit.jupiter:junit-jupiter-api:5.8.2 (*)
     |    \--- org.junit.jupiter:junit-jupiter-engine:5.8.2
     |         +--- org.junit:junit-bom:5.8.2 (*)
     |         +--- org.junit.platform:junit-platform-engine:1.8.2
     |         |    +--- org.junit:junit-bom:5.8.2 (*)
     |         |    +--- org.opentest4j:opentest4j:1.2.0
     |         |    \--- org.junit.platform:junit-platform-commons:1.8.2 (*)
     |         \--- org.junit.jupiter:junit-jupiter-api:5.8.2 (*)
     +--- org.mockito:mockito-core:4.5.1
     |    +--- net.bytebuddy:byte-buddy:1.12.9 -> 1.12.23
     |    +--- net.bytebuddy:byte-buddy-agent:1.12.9 -> 1.12.23
     |    \--- org.objenesis:objenesis:3.2
     +--- org.mockito:mockito-junit-jupiter:4.5.1
     |    +--- org.mockito:mockito-core:4.5.1 (*)
     |    \--- org.junit.jupiter:junit-jupiter-api:5.8.2 (*)
     +--- org.skyscreamer:jsonassert:1.5.1
     |    \--- com.vaadin.external.google:android-json:0.0.20131108.vaadin1
     +--- org.springframework:spring-core:5.3.30 (*)
     +--- org.springframework:spring-test:5.3.30
     |    \--- org.springframework:spring-core:5.3.30 (*)
     \--- org.xmlunit:xmlunit-core:2.9.1

testRuntimeOnly - Runtime only dependencies for source set 'test'. (n)
No dependencies

(c) - A dependency constraint, not a dependency. The dependency affected by the constraint occurs elsewhere in the tree.
(*) - Indicates repeated occurrences of a transitive dependency subtree. Gradle expands transitive dependency subtrees only once per project; repeat occurrences only display the root of the subtree, followed by this annotation.

(n) - A dependency or dependency configuration that cannot be resolved.

A web-based, searchable dependency report is available by adding the --scan option.

BUILD SUCCESSFUL in 4s
1 actionable task: 1 executed
  • 우측 Gradle 클릭

 

1. spring boot starter web

  • 8080 포트로 웹 서버가 띄워진 것은 embedded tomcat을 가지고 있기 때문
  • spring webmvc 의존

 

2. thymeleaf

  • 템플릿 엔진으로 우리는 현재 3.0.4.RELEASE -> 3버전의 thymeleaf를 쓰고있다

 

3. data jpa

  • db connection을 위한 라이브러리들이 있음

  • HikariCP : connection tool, spring boot 2.0 대부터 기본

  • jdbc에 transaction, spring jdbc template 등이 다 들어있음

 

4. Hibernate

 

5. 로그 관련

  • logback 사용
  • 예전에는 로그를 딱 하나 박아놓고 했다면 요즘은 slf4j라는 로고를 찍는 단순한 인터페이스의 모음 -> 구현체로 logoback, logo4j, logo4j2를 꽂아서 사용

 

6. spring core

 

==> 결론적으로 아래처럼 라이브러리들이 많이 있다

 

7. test쪽 살펴보기

  • JUnit : 테스트 프레임워크
  • spring-test : 스프링 통합 테스트 지원
  • Mockito : 실제 객체를 모방한 가짜 객체인 mock 객체를 만들어 줌
  • AssertJ : 테스트를 좀 더 편하게 작성하게 도와주는 라이브러리

 


핵심 라이브러리

- 스프링 MVC

- 스프링 ORM

- JPA, Hibernate

- spring data JPA -> 이 강의에서는 사용하지 않을 것

 

기타 라이브러리

- H2 데이터베이스 클라이언트 -> 후에 설치된 라이브러리와 버전 맞추어 설치하기

- 커넥션 풀 : boot 기본은 HikariCP

- WEB(thymeleaf)

- 로깅 SLF4J 인터페이스에 LogBack이라는 구현체를 꽂아서 씀

- 테스트

 

-> spring data JPA는 스프링과 JPA를 먼저 이해하고 사용해야 하는 응용기술

 

https://inf.run/hhEvV

 

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의

실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프

www.inflearn.com

 

728x90
728x90