본문 바로가기

Java/spring boot with JPA

Spring boot

반응형

Spring boot 는 제품수준의 Spring 기반 어플리케이션을 보다 쉽고 빠르게 만들수 있게 도와줍니다.

3rd party library 를 비롯한 스프링에 대한 설정들도 제공해줍니다. 대표적으로 내장 서버가 있습니다. 

XML 설정도 더 이상 하지 않습니다. code generation도 하지 않습니다.

이런 장점으로 더 customizing 하기가 쉽습니다.

Spring boot 는 java8 이상부터 사용가능합니다.

보다 자세한 설명은 spring 공식 사이트를 참고해주세요 :)

docs.spring.io/spring-boot/docs/current/reference/html/

 

Spring Boot Reference Documentation

The reference documentation consists of the following sections: Legal Legal information. Documentation Overview About the Documentation, Getting Help, First Steps, and more. Getting Started Introducing Spring Boot, System Requirements, Servlet Containers,

docs.spring.io

 

본격적으로 그 구조에대해 알기 위해 Project를 생성하겠습니다.

IDE는 STS 를 사용했습니다. maven project를 만들겠습니다. 

group-id, artifact-id 는 원하는 이름을 사용하시면 되는데 보통 group id는 package이름으로 사용할 부분을 작성하시면 됩니다.

직접 IDE에서 생성하는 방법외에 spring 사이트에서 프로젝트를 만드는 방법도 있습니다.

아래 사이트에 접속하셔서 원하는 build 방법, spring boot 버전 등을 선택하여 생성해주세요. 이방법을 사용하게 되면 dependecy 등을 따로 설정하지 않아도 됩니다.

https://start.spring.io 

 

이렇게 생성한 project에서 아래아 같이 parent, dependency 를 추가해줍니다.

Maven 간에는 계층 구조로 만들 수 있습니다. 

<parent> 를 통해 이 프로젝트의 부모 프로젝트를 설정해줄 수 있습니다. 이 부분이 의존성 관리와 관련이 깊습니다.

dependency, build 등을 추가하면 설정이 끝났습니다.

 

 

이렇게 설정하면 내장 톰캣이 사용되어 어플리케이션이 구동되게 됩니다.

 

@SpringBootApplication

default 패키지 아래에 @SpringBootApplication이 있는 곳을 메인 어플리케이션이라고 합니다.

이 annotation은 default 패키지 안에 작성하는 것이 좋은데 그 이유는 component scan이 여기 하위로 일어나기 때문입니다.

 

이제 다시 pom.xml 파일을 살펴보겠습니다.

maven project로 설정한 파일을 보면 dependency 로 설정한 부분이 몇개 되지 않고 버전도 작성되지 않았습니다.

그런데 의존성 관리가 어떻게 되는 걸까요?

그 답은 parent 설정에 있습니다. 

저희는 이전에 parent 에 

이렇게 설정을 해줬습니다. 이 parent(spring-boot-starter-parent)를 따라가면 

위와 같은 또 다른 부모 설정이 되어 있는 것을 볼 수 있습니다. 

여기에 있는 부모(spring-boot-dependencies)에 depency 의 버전에 대해 기록되어 있습니다.

이렇게 dependency management를 통해 관리를 해주기 때문에 직접 관리해야할 의존성의 수가 줄어듭니다. :)

반응형

'Java > spring boot with JPA' 카테고리의 다른 글

CORS  (0) 2020.12.26
Optional  (0) 2020.12.01
Mapper, Dependency  (0) 2020.11.04
spring boot & JPA 프로젝트 생성 (JDBC는?)  (0) 2020.07.28
AWS 에 Spring boot project 배포하기  (0) 2020.07.21