프로그래밍 이야기/SPRING BOOT 공부

스프링부트 공부- 그레이들정의

글쓰는 개발자 김뉴네 2023. 9. 18. 22:36
728x90
반응형

-  스프링 부트는 서드파티 라이브러리나 스프링 플랫폼 설정이 처음부터 들어 있어 최소한의 작업으로 개발을 시작할 수 있다.

- 설정을 변경하지 않는다면 내장된 컨테이너로 톰캣을 사용해 미리 준비도니 환경에 따라 동작한다.

- 명령줄로 실행 가능한 하나의 jar 파일 생성이 가능하며 cmd 창에서 java -jar 명령의 인수로 작성한 jar 파일을 지정해 실행하면 내장된 톰캣이 실행된 후 개발한 애플리케이션이 실행된다.

 

- 스프링 부트는 스프링 MVC 프레임 워크를 사용한다.

 

- 스타터 : 스프링 부트의 구성 요소중 하나이며 일련의 의존관계를 세트로 정리하는 모듈이다.

- spring-boot-starter-web : 스프링MVC, 톰캣이 의존관계에 추가된다.

- spring-boot-starter-jdbc : 스프링 JDBC, 톰캣 JDBC 커넥션 풀이 의존관계에 추가된다.

 

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-stater

 

Spring Boot Reference Documentation

This section goes into more detail about how you should use Spring Boot. It covers topics such as build systems, auto-configuration, and how to run your applications. We also cover some Spring Boot best practices. Although there is nothing particularly spe

docs.spring.io

 


 - 스프링 부트는 아파치 메이븐 또는 그레이들 사용을 권장한다.

 - 그레이들은 스크립트를 작성하는 빌드 도구이므로 아파치 앤트처럼 작업을 자유롭게 작성할 수 있다.

 - 멀티 프로젝트를 구성할 때 하위 프로젝트에 대해 일괄로 설정하고 필요에 따라 개별적으로 설정하 ㄹ수 있어 스크립트의 작성량이 메인븐보다 적다

 - 메이븐은 특수한 처리가 필요할 때 독자적인 프로그인으로 구현해야 하지만 그레이들은 스크립트를 작성하는 것만으로도 대응 가능하다.


빌드 도구로 메이븐을 이용하려면 spring-boot-starter-parent 프로젝트를 부모 프로젝트로 상속한다.

그러면 플러그인의 디폴트 설정, 의존 라이브러리의 버전 정의, 자바 컴파일러 준수레벨, 문자 코드를 이어받을 수 있으며 값을 지정하거나 덮어 쓰지 않느다면 값을 정의하지 않아도 미리 준비된 디폴트 값으로 설정된다.


- 스프링부트 2.0은 그레이들 4.0 이상을 지원한다. 메이븐과 다르게 그레이들을 이용하는 경우 설정을 이어받는 부모 프로젝트가 존재하지 않으므로 스타터를 의존관계로 추가해야한다. 그레이들 플러그인 spring-boot-gradle-plugin으로 실행 가능한 jar 파일을 작성한다. 메이븐을 사용할 때와 마찬가지로 dependency-management 플러그인으로 의존 라이브러리 버전을 생략할 수 있다.

bulidscript{
ext{
springBootVersion = "2.0.6.RELEASE"
groovyVersion = "2.5.3"
}
repositories{
jcenter()
}

dependencies{
classpath "org.springframework.boot;spring-boot-gradle-plugin:${springBootVersion}"
}
}

apply plugin : "java"
apply plugin : "org.springframework.boot"
apply plugin : "io.spring.dependency-management"

sourceCompatibility = 11
targetCompatibility = 11
[compileJava, compileTestJava, compileGroovy, complieTestGroovy]*.options*encoding="UTF-8"

repositories{
jcenter()
}

dependencyManagement{
imports{
mavenBom org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES
}
}

dependencies{
compile "org.springframework.boot:spring-boot-starter-thymeleaf"
testCompile "org.springframework.boot:spring-boot-starter-test"
}


- 스프링 부트의 릴리스에는 일련의 의존관계가 정의되어 있어 모든 라이브러리의 버전을 하나씩 지정할 필요는 없으며 스프링 부트를 업그레이드 하는 경우 의존관계에 정의된 라이브러리도 함께 업그레이드 된다.

ext는 그레이들의 확장 속성이며 확장속성에 각 라이브러리의 버전이 설정되어 있어 사용할 라이브러리의 버전을 변경하려면 버전값을 덮어 써야 한다.

 


- 스프링 부트는 자바 기반으로 구성하는 것을 선호하는데 스프링 부트는 @Configuration 어노테이션을 부여한 클래스로 구성하는 것을 권장하며 구성클래스는 꼭 하나의 클래스로 만들필요는 없다.

- @Import  어노테이션을 사용하여 다른 구성을 로드할 수 있으며 @Configuration 어노테이션을 각 구성 클래스에 부여해 커포넌트 스캔 기능으로 구성을 자동 설정하는 방법도 있다.

 

728x90
반응형