스프링 부트 시작하기

스프링 부트 시작하기

https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#getting-started-introducing-spring-boot

스프링 부트는 의존성, properties등 다양한 작업들을 자동으로 해준다. 위 URL로 들어가면 더 자세하게 알아볼 수 있다.

나는 현재 intelliJ Community버전이므로 인텔리제이에서 spring-boot관련 기능을 제공하지 않고 있다. 그래서 mavne을 통해 만들 었다.

org.springframework.boot spring-boot-starter-parent 2.0.3.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-maven-plugin

이런식으로 작성하면 만들 수 있다.

https://docs.spring.io/spring-boot/docs/2.0.3.RELEASE/reference/htmlsingle/#getting-started-maven-installation

이 URL로 들어가면 위 MAVEN소스를 확인할 수 있다. 스프링을 사용했을때 dependency에도 version을 입력했던것 같은데 springboot에서는 입력하지 않았다. 그런데 위에 parent에 정의되있는 것으로 봐서 parent를 입력하면 뭔가가 자동으로 다운로드 받아져 dependency에는 추가하지 않아도 되는 것 같다. 이런식으로 같은 버전임을 암시적으로 알려주는 느낌이다.

@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }

메인 소스는 이런식으로 간단하게 작성하면 된다. 아직 위 코드가 뭐를 뜻하는지는 자세하게 알 수 는 없지만

@SpringBootApplication으로 스프링 부트의 시작을 알려주는 느낌이다.

나는 터미널로 해당 소스를 실행해 보았다.

먼저 mvn pacage를 입력하면 jar파일을 설치해준다.

jar파일 생성 모습(Spring-1.0-SNAPSHOT.jar)

이제 java -jar target/Spring-1.0-SNAPSHOT.jar 이 명령어를 입력하면

이런식으로 화면이 출력된다는 것을 확인 할 수 있다. 여기서 에러가 발생한 이유는 화면을 만들어주지 않았기 때문이다.

참고로 java -jar target까지 명령어고 /부터는 위 사진에서 언급했듯이 jar파일의 이름?이다.

스프링 부트 페이지를 만드는 방법은 위 방법 말고도 몇 가지가 존재하는 데 그 중에서 아래 URL로 들어가면 손쉽게 프로젝트를 만들 수 있다.

https://start.spring.io/

불러오는 중입니다...

스프링 부트의 구조는 메이븐의 구조와 비슷하다.

대충 구조는 이렇다.

내가 maven으로 프로젝트를 구성했기 때문에 리소스 밑에 static, template는 직접 만들었다.

마지막으로

@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class,args); } }

이 코드는 스프링 부트에서 최상위 패키지에 놓아야 한다고 한다.

왜냐하면 @SpringBootApplication어노테이션 때문인데 이 어노테이션을 들어가면 @ComponentScan이 존재한다. 이 어노테이션은 이 어노테이션이 붙은곳 부터 끝까지?를 탐색하기 때문에 최상위 패키지에 놓는게 좋다고 한다. 그렇다고 패키지 없는 java파일 밑에 놓으면 안된다고 한다. 왜냐하면 탐색하고 싶지 않는 모든 패키지들도 탐색하기 때문에 비효율적이라고 한다. 그래서 최상위 패키지에 놓는게 제일 좋다고 한다.

from http://b-programmer.tistory.com/10 by ccl(A) rewrite - 2020-03-19 11:20:30

댓글

이 블로그의 인기 게시물

데이터 바인딩 추상화 - propertyEditor

[샤니마스 SPRING PARTY2020] THE IDOLM @ STER SHINY COLORS SPRING...

Spring Web Form