Spring Boot
스프링부트(Spring Boot)는 스프링 프레임워크 기반 어플리케션(Data, Batch, Integration, Web, JDBC, Security 등)을 사용자가 더 빠르고 쉽게 개발 할 수 있게 해주는 오픈소스 프로젝트이다.
- 단독 실행이 가능한 수준의 스프링 어플리케이션 제적이 가능
- 내장된 Tomcat, Jetty, UnderTow 등의 서버를 이용해서 별도의 서버를 설치하지 않고 실행이 가능
- 최대한 자동화된 설정을 제공
- XML 설정 없이 단순한 설정 방식을 제공
(https://spring.io/tools3/sts/all)
IntelliJ IDE
인텔리제이(IntelliJ)는 JetBrain사에서 개발한 자바 IDE이다. 기존의 이클립스(Eclipse) IDE 보다 가볍고 여러 면에서 월등하다고 평가받고 있는 IDE이며, 유료 구독 버전인 Ultimate 버전과 무료 버전인 Community 버전을 사용할 수 있다.
(https://www.jetbrains.com/idea/)
개발환경
- Windows 10
- IntelliJ IDEA Version 2019.1
- jdk 1.8
- Spring Boot 2.1.1 RELEASE
- Maven
IntelliJ를 통한 스프링부트 프로젝트 만들기
공부용이기에 학교 이메일로 Ultimate 버전을 1년간 무료로 사용한다.
인텔리제이를 설치 후 실행하면 아래 화면이 뜬다. Create New Project를 클릭하자. (혹은 Tool바의 File > New > Projcet)
Maven을 클릭한다. Project SDK는 jdk1.8을 사용한다.
Maven 프로젝트의 그룹명과 아티팩트명을 작성한다.
프로젝트명을 작성한다.
다음과 같이 Maven 프로젝트가 만들어 졌다.
Maven 프로젝트의 pom.xml에 다음과 같은(스프링 부트를 가동 할 수 있는) 의존성을 추가한다.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tutorial</groupId>
<artifactId>springboot-tutorial</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
다음과 같이 프로젝트 구조를 만든다.
Application.java의 코드는 다음과 같다.
@SpringBootApplication 클래스의 적정 위치는 default pakage(위에서는 com.tutorial.springboot)에 위치하는 것이 좋다.
@SpringBootApplication 어노테이션의 소스에 붙어있는 @ComponentScan 어노테이션은 해당 클래스 기준으로 현 위치와 그 아래 위치까지 스프링 빈을 나타내는 어노테이션이 붙은 클래스를 찾기 때문이다.
아래와 같이 Application.java 우클릭하여 Run 'Application'을 클릭한다.
다음과 같이 콘솔창에서 실행되는 것을 확인 할 수 있다.
만약 8080포트 사용중으로 에러가 난다면 cmd 창을 켜서
> netstat -nao | findstr 8080
로 pid를 확인한후
> taskkill /f /pid [pid번호]
로 종료한다.
크롬 브라우저에서 http://localhost:8080/ 으로 접속하면 아래와같은 에러 페이지가 뜬다.
index.html 파일을 생성하지 않았으니 당연하다.
src/main/resource/static 밑에 index.html 파일을 추가해준다.
다시 localhost:8080으로 접속하면 index.html을 잘 불러 오는 것을 볼 수 있다.
스프링 부트는 maven을 통해 빌드하면 jar 파일 하나가 생성된다.이 jar파일을 실행시키면 스프링 부트가 위와 같이 실행되는 것을 볼 수 있다.
단순히 스프링 프레임워크만을 써서 개발을 했을 경우에는 톰캣(Tomcat)과 연동하여 war 파일을 만들어서 실행해야 했지만, 스프링부트는 스프링부트 안에 자체적으로 톰캣이 내장되어 있어 그럴 필요 없이 바로 jar 파일 하나만 실행하면 웹 어플리케이션을 가동 할 수 있다.
프로젝트 밑에 target에서 maven 명령어를 쳐서 패키징을 하면 빌드 및 패키지가 자동적으로 실행된다.
생성된 스프링 부트 jar 파일을 실행하면 스프링 부트가 실행되는 것을 볼 수 있다.
https://jaystevency.tistory.com/19
https://engkimbs.tistory.com/748
'spring' 카테고리의 다른 글
[springboot] REST API 적용하기 (0) | 2020.10.14 |
---|---|
[springboot] MyBatis resultType이 Map일경우 key를 소문자로 만들기 (0) | 2020.10.14 |
[springboot] h2-console 접속이 안될 경우 문제 해결 (0) | 2020.10.14 |
[springboot] jar파일이 jsp경로를 못찾는 경우, intellij에서 war 빌드 (0) | 2020.10.11 |
[Spring] @ResponseBody, return null, MessageConverter (0) | 2020.10.09 |
댓글