Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- formmatted
- 프레젠테이션 계층
- http
- MSA
- JPA
- ORM
- 비동기
- 세션기반 인증
- 스프링부트 계층구조
- 작업명중복
- 비즈니스 계층
- IPC
- 스프링
- 스프링부트 구조
- ./gradlew docker
- spring
- 동기
- 토큰기반 인증
- 스프링 부트 테스트
- Java
- 어노테이션
- RESTfull API
- ./gr
- JWT
- @temproal
- 스프링부트
- java I/O
- 퍼시스턴스 계층
- 로그인 인증 흐름
- 로그인/로그아웃
Archives
- Today
- Total
[DEV] J-Jay
스프링 부트 스타터 본문
728x90
스프링 부트 스타터
스피링 부트 스사터는 의존성이 모여 있는 그룹이다. 스타터를 사용하면 필요한 기능을 간편하게 설정할 수 있다.
스타터는 spring-boot-starter-{작업유형}이라는 명명규칙이 있다. (ex JDBC 스타터 : spring-boot-starter-jdbc)
Starter | 내용 |
spring-boot-starter-web | Spring MVC를 사용해서 RESTful 웹 서비스를 개발할 때 필요한 의존성 모음 |
spring-boot-starter-test | 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음 |
spring-boot-starter-validation | 유효성 검사를 위해 필요한 의존성 모음 |
spring-boot-starter-actuator | 모니터링을 위해 애플리케이션에서 제공하는 다양한 저옵를 제공하기 쉽게 하는 의존성 모음 |
spring-boot-starter-data-jpa | ORM을 사용하기 위한 인터페이스의 모음인 JPA를 더 쉽게 사용하기 위한 의전성 모음 |
build.gradle 확인
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
스프링 부트가 의존성을 가져오는 방법
스프링 부트는 현재 버전에 맞는 라이브러리를 알아서 관리한다.
만약 어떤 의존성을 사용하는지 버전별 확인이 필요하다면 스프링 공식 문서 Dependency Versions에서 확인 가능하다.
스타터 종류 참고
https://github.com/spring-projects/spring-boot
스프링부트 자동구성
자동구성은 스프링 부트의 중요한 개념이다.
스프링 부트에서는 애플리케이션이 최소한의 설정만으로도 실행되게 여러부분을 자동으로 구성한다.
예시로 스프링 부트는 서버를 시작할 때 구성 파일을 읽어와서 설정한다.
META-INF에 있는 spring.factories 파일에 담겨있다
spring.factories
# Initializers
org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer,\
org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener
# Application Listeners
org.springframework.context.ApplicationListener=\
org.springframework.boot.autoconfigure.BackgroundPreinitializer
# Environment Post Processors
org.springframework.boot.env.EnvironmentPostProcessor=\
org.springframework.boot.autoconfigure.integration.IntegrationPropertiesEnvironmentPostProcessor
# Auto Configuration Import Listeners
org.springframework.boot.autoconfigure.AutoConfigurationImportListener=\
org.springframework.boot.autoconfigure.condition.ConditionEvaluationReportAutoConfigurationImportListener
# Auto Configuration Import Filters
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\
org.springframework.boot.autoconfigure.condition.OnBeanCondition,\
org.springframework.boot.autoconfigure.condition.OnClassCondition,\
org.springframework.boot.autoconfigure.condition.OnWebApplicationCondition
# Failure analyzers
org.springframework.boot.diagnostics.FailureAnalyzer=\
org.springframework.boot.autoconfigure.data.redis.RedisUrlSyntaxFailureAnalyzer,\
org.springframework.boot.autoconfigure.diagnostics.analyzer.NoSuchBeanDefinitionFailureAnalyzer,\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationScriptMissingFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.DataSourceBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer,\
org.springframework.boot.autoconfigure.jooq.NoDslContextBeanFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryBeanCreationFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MissingR2dbcPoolDependencyFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.MultipleConnectionPoolConfigurationsFailureAnalyzer,\
org.springframework.boot.autoconfigure.r2dbc.NoConnectionFactoryBeanFailureAnalyzer
# Template availability providers
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\
org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.mustache.MustacheTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\
org.springframework.boot.autoconfigure.web.servlet.JspTemplateAvailabilityProvider
# DataSource initializer detectors
org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializerDatabaseInitializerDetector
# Depends on database initialization detectors
org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
org.springframework.boot.autoconfigure.batch.JobRepositoryDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.quartz.SchedulerDependsOnDatabaseInitializationDetector,\
org.springframework.boot.autoconfigure.session.JdbcIndexedSessionRepositoryDependsOnDatabaseInitializationDetector
.....
External Libraries
자동 구성되는 클래스는 AutoConfiguration / 속성값을 정의해놓은 클래스는 Properties를 이름 끝에 붙였다
'Back-end > Spring' 카테고리의 다른 글
스프링 부트 코드 이해 (2) (0) | 2023.08.31 |
---|---|
스프링 부트 코드 이해 (1) (0) | 2023.08.31 |
스프링 Concept (2) (0) | 2023.08.31 |
스프링 Concept (1) (0) | 2023.08.30 |
스프링과 스프링 부트 (0) | 2023.08.30 |