Spring 프로젝트 처음 시작하기
spring에서 스프링 부트 기반 프로젝트를 만들어주는 사이트.
Project
Maven Project
Gradle Projeck
라이브러리를 땡겨오고, 빌드하는 life cycle까지 다 관리해주는 툴.
과거엔 1을 많이 썼지만 요즘엔 2를 더 많이 씀. spring라이브러리 관리 자체도 2로 많이 넘어옴.
Spring Boot
버전을 선택해야하는데,
SNAPSHOT : 아직 만들고 있는 버전.
M1 : 아직 정식 릴리즈된 버전이 아님.
정식 릴리즈된 버전중에 가장 최신꺼 선택하자
Project Metadata
Group : 보통 기업명
Artfact : 빌드된 결과물(프로젝트명)
ADD DEPENDENCIES★
스프링 부트 기반으로 프로젝트를 시작할건데, 어떤 라이브러리를 땡겨서 쓸거냐는 것.
웹프로젝트를 만들거니까 Spring Web,
HTML을 만들어주는 템플릿 엔진인 Thymeleaf쓸거다.(프리마커나 뭐 다른 여러가지가 있음)
그리고 GENERATE누르고 다운받자.
압축 풀고 인텔리제이에서 다운받은 압축파일을 풀고 build.gradle(프로젝트로)를 여는데
처음 열면 외부에서 라이브러리를 다운받는다.
.idea : 인텔리제이가 사용하는 설정파일
gradle > wrapper : gradle과 관련되어 쓰는 폴더
src > main, test : Maven이나 Gradle이나 main과 test가 나누어져있음. main>java,resources가 있는데 java밑에 실제패키지와 소스파일들이 있다. test는 test code들과 관련된 소스들이 들어감.
: test코드라는게 정말 중요하다는 의미.
resources : xml,설정파일,html등 java파일을 제외한것들이 다 들어간다고 보면 됨.
build.gradle★★
아까 위에서 설정했던 것들이 제공됨.
일단 gradle이 버전 설정하고 라이브러리 땡겨오는구나~정도로 이해하고 넘어가자
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation('org.springframework.boot:spring-boot-starter-test') {
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
} //테스트라이브러리가 자동으로 들어감.
}
이 라이브러리들을 어디선가 다운받아야하는데,
repositories {
mavenCentral()
}
그 코드가 이거. mavenCentral이라는 공개된 사이트가 있는데, 거기서 받아라~하는 것. 필요하면 특정 사이트 넣으면 된다.
.gitignore : 소스코드 관리해주는것이다.
git에는 필요한 소스코드만 올라가고 나머지 결과물들은 올라가면 안되는데, 이런것도 start.spring.io에서 다 해줌.
이제 main 메소드를 실행해주면,
아래 여러가지가 뜨는데 이게 중요함.
2021-04-20 17:15:25.278 INFO 24536 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
: http라는걸로 8080port가 뜬 것.
인터넷 창을 켜고 http://localhost:8080/ 에 접속해보자.
이러면 프로젝트 환경설정에 성공한 것!
main 메소드를 실행하면 SpringApplication.run해서
package hello.hellospring;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class, args);
}
}
//SpringApplication.run에 HelloSpringApplication 이 클래스를 넣어주면
//@SpringBootApplication (Annotation: java코드에 @를 이용해서 주석을 달아 특별한 의미 부여한 것)
//이 실행됨.
// : 밑에 톰캣이라는 웹서버를 내장하고있는데,
// 톰캣이라는 웹서버를 자체적으로 띄우면서 스프링부트가 같이 올라오는 것.
!Tip
요즘 인텔리제이쓰면 java를 직접 실행하는게 아니라 gradle을 통해 실행될때가 있는데,
아래처럼 설정해주면 된다.
그럼 gradle통하지 않고 java를 바로 실행하여 더 빨라짐