Project : 생성할 프로젝트의 빌드 자동화 툴 선택
Language : 프로젝트에서 사용할 언어 선택
Spring Boot : 프로젝트의 스프링 부트 버전 선택
Group, Artifact, Name, Description : 프로젝트에 관한 정보
* Artiface에 적은 이름이 Name, Package name에도 같이 적히고 파일 이름이 됨
Package name : Project base Package 이름 지정
Packaging : import / export 시 확장자 지정
Java : JDK 버전 선택
Dependencies : 설치 시 사용할 라이브러리 선택 (Spring Web, Spring Data JPA, Lombok 등)
다 적어준 후 GENERATE를 누르면 적은대로 세팅된 파일을 다운받음
Import
이클립스 실행 → File → import (아무 프로젝트도 없는 상태라면 Import projects)
→ Select → Gradle → Existing Gradle Project
→ Import Gradle Project → Project root directory → 위에서 다운받고 압축해제한 Project 선택
→ Import Options → Override Workspace Settings 체크 → Gradle Wrapper 체크 → Finish
이후 src/main/java에 있는 BoardApplication에서 Run해보기
VSCode에서 Spring 실행
확장 (Market Place)에서 Spring Boot Extension Pack 설치 [아마 설치하면 Spring Boot Dashboard, Spriing Boot Snippets, Spring Boot Tools, Spring Initializr Java Support이 묶음으로 설치될 것 / 없는 건 따로 확장에서 검색 후 설치]
Gradle for Java 설치
설치 후 폴더 열기로 위에서 만든 혹은 기존에 있던 Spring 폴더 열기 / Github에 있으면 터미널에서 Git Bash로 Pull해서 프로젝트를 가져온 후 사용 / 혹은 F1 눌러서 새 Spring Project 생성
@SpringBootApplication
ㅡ 해당 어노테이션이 있는 클래스의 패키지는 베이스 패키지로 지정
ㅡ Spring이 해당 베이스 패키지와 그 하위 패키지에서 Spring Bean을 찾아 스프링의 의존성 주입 컨테이너 오브젝트, ApplicationContext에 등록할 수 있도록 하며 스프링은 애플리케이션 실행 중 필요한 오브젝트를 찾아서 의존하는 다른 오브젝트를 연결
ㅡ 자동으로 다른 오브젝트를 찾아주는 과정은 @Autowired 어노테이션이 수행
ㅡ @Component 어노테이션으로 Spring Bean 등록
Spring Bean : Spring IoC 컨테이너가 관리하는 자바 객체 (ApplicationContext에 의해 만들어지고 관리되는 객체)
@Component
ㅡ Spring에게 해당 클래스를 Spring Bean으로 등록 시키도록 알려주는 어노테이션
@Component만으론 Spring이 모든 클래스를 검색해서 Spring Bean으로 등록을 못하기에 @ComponentScan 어노테이션이 특정 클래스에 있어야만 컴포넌트를 스캐닝 가능
@ComponentScan이 포함된 @SpringBootApplication이 메인 메서드가 포함된 Class에 선언되어 있기에 하위이 있는 모든 패키지에서 @Component 어노테이션이 Spring Bean을 검색해서 등록
@Bean
ㅡ @Component를 사용하지 못하거나 사용하는 것을 원치 않을 때, 해당 클래스를 Spring Bean으로 등록
ㅡ @Autowired를 사용하지 않을 때, Spring 기반이 아닌 라이브러리르 사용할 때
Build / Gradle
Build.Gradle 파일
ㅡ Build : 소스 코드를 컴퓨터나 휴대폰에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 혹은 그 결과물
ㅡ Build 자동화 툴 사용 이유 : 라이브러리를 사용하기 위해 .jar파일을 받아 설치하는 작업을 제거 / 개발자가 모든 라이브러리를 컴파일해 빌드하고 테스트하는 과정을 대신 해줌
ㅡ Gradle : Java, Groovy, Scala 등 JVM에서 실행되는 언어의 빌드 자동화를 위해 사용되는 빌드 자동화 툴
ㅡ Gradle은 의도적으로 많은 기능을 제공하지 않으며 플러그 인을 통해 Gradle을 확장
ㅡㅡㅡㅡㅡㅡ
Lombok : 어노테이션으로 컴파일 시 도움을 주는 라이브러리 / 따로 다운로드
Repository : Gradle이 라이브러리를 다운로드 받는 경로
Dependency : 현재 프로젝트에서 사용할 라이브러리 명시 / dependencies에 있는 데이터를 Gradle이 확인 후 다운
Test : 단위 테스트 플랫폼 지정
Dependency Library 추가 : https://mvnrepository.com/
'Spring' 카테고리의 다른 글
JPA (0) | 2023.03.06 |
---|---|
Service (0) | 2023.03.06 |
Controller / DTO (0) | 2023.03.05 |
DI & IoC (0) | 2023.03.03 |
Spring 프레임워크 (0) | 2023.02.28 |
댓글