사전 준비물
- Java 11++ 설치 -> 11
- IDE : IntelliJ 또는 Eclipse 설치 -> IntelliJ Community
스프링 부트 스타터 사이트로 이동해서 스프링 프로젝트 생성
- 프로젝트 선택
- Project : Gradle Project
- Spring Boot : 2.4.4
- Language : Java
- Packaging : Jar
- Java : 11
- Project MetaData
- groupId : hello (기업 도메인 명)
- artifactID : hello-spring (build 결과물)
- Dependencies : Spring Web, ThymeLeaf
.idea -> Intellij 설정파일
gradle -> wrapper -> gradle 설정 (Library 의존관리) Maven도 있음
src
- main
- java -> java파일 관리 폴더
- resources -> html 및 css등의 리소스 파일 관리 폴더
- application.properties -> IOC (Inversion of Control) & DI (Dependency Injection)을 위한 설정 파일
- test (테스트 관련 폴더)
build.gradle
plugins {
id 'org.springframework.boot' version '2.4.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}
group = 'hello'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
repositories {
mavenCentral() // mavenCentral에서 다운로드 받겠다는 의미
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' // template engine
implementation 'org.springframework.boot:spring-boot-starter-web' // spring web 라이브러리들
testImplementation 'org.springframework.boot:spring-boot-starter-test' // junit5
}
test {
useJUnitPlatform()
}
.gitIgnore -> 버전관리 프로그램인 git에 버전관리하지 않을 파일들의 패턴 혹은 파일들을 특정하여 예외시키는 파일
gradlew
gradle.bat
-> Gradle로 빌드 관련
setting.gradle -> gradle setting 파일
SpringBootApplication 어노테이션?
Annotation? -> 주석 -> 어떤 처리를 할 지 적어두고 그것 해줌!
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
/**
* Exclude specific auto-configuration classes such that they will never be applied.
* @return the classes to exclude
*/
@AliasFor(annotation = EnableAutoConfiguration.class)
Class<?>[] exclude() default {};
/**
* Exclude specific auto-configuration class names such that they will never be
* applied.
* @return the class names to exclude
* @since 1.3.0
*/
@SpringBootConfiguration
@SpringBootConfiguration은 @Configuration을 대체하고
단위 통합 테스트시 유용하게 사용 할 수 있다.
@ComponentScan -> @Component라는 어노테이션이 붙은 객체들을 스캔 한 뒤 자동으로 bean으로 등록
(@Component, @Congiguration, @Repository, @Service, @Controller, @RestController) 이런거
@EnableAutoConfiguration -> 메타 파일을 등록하고 @ComponentScan에서 등록하지 못한 추가적인 bean 등록
@ComponentScan -> bean훑고
@ConditionalOnMissingBean에서 조건 검사 후 Bean 등록 여부를 결정한다.
-> 그 다음 내장 Tomcat띄우고 뭐 실행??
'BackEnd > Spring & Springboot Study' 카테고리의 다른 글
[프로젝트 환경설정] 04. 빌드하고 실행하기 (0) | 2021.04.09 |
---|---|
[프로젝트 환경설정] 03. View 환경설정 (0) | 2021.04.09 |
[프로젝트 환경설정] 02. 라이브러리 살펴보기 (0) | 2021.03.31 |
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 (0) | 2021.03.23 |
Validation (0) | 2021.02.16 |