Java Spring Boot
는 Spring으로 애플리케이션을 만들 때, 쉽고 빠르게 만들 수 있도록 도와주는 프레임워크
스프링 vs 스프링부트
Spring 🌱 | Spring Boot🌱 | |
---|---|---|
정의 | Enterprise Application을 개발하는데 사용되는 오픈소스 경량 프레임워크 | REST API 개발에 사용되며, 기존의 스프링 프레임워크 위에 구축 |
중요기능 | Dependency Injection | Autoconfiguration |
사용방식 | 설정 파일 작성, 빈 객체 등록, 빈 객체 간의 의존성 설정 | 간단한 설정과 의존성 처리 |
설정파일 | Bean Configuration XML파일 | application.properties 또는 application.yml 이용 |
목적 | 느슨하게 결합된 응용프로그램 | 독립 실행형 응용 프로그램 |
서버 | 별도의 외장 웹 서버 설치 | 내장된 서버 존재 |
의존성 | 필요한 의존성 각각 추가 | 여러 의존성을 패키지로 묶은 starter 이용 |
코드 크기 | 많은 코드 작성 | 코드 라인 축소 |
인메모리 데이터베이스 |
인메모리 데이터베이스 지원 X | 인메모리 데이터베이스 지원 O |
배포 | war 파일로 빌드하여 배포 | 독립적으로 실행 가능한 jar 파일로 배포 가능 (war도 가능) ➜ 클라우드 및 도커 같은 가상화환경에 빠르게 배포 가능 |
mvc 기본화면 | JSP 파일 | thymeleaf 타임리프 (*.html) |
DB연동 | commons.dbcp2 라이브러리 사용 | HicariCP 라이브러리 사용 |
프로젝트 생성
[New] - [Spring Starter Project]

pom.xml 에서 version 2.4.2 로 변경
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
Application.java
@SpringBootApplication
어노테이션을 사용한다. 해당 어노테이션은 다음과 같은 기능을 포함하고 있다.
@SpringBootConfiguration
: 스프링부트의 자동 설정 메커니즘 활성화@EnableAutoConfiguration
: starter와 application.properties 으로 설정 자동화@Component
: 자동으로 빈 스캔
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
XXXService service = ctx.getBean("service", XXXService.class); // 빈 접근
}
}
빈 생성
@SpringBootApplication
의 빈 패키지와 같거나 서브패키지는 자동으로 빈으로 등록되어 생성된다.
💡 해당 빈에 @Controller @Service @Repository @Component @Configuration 설정 필수
다른 패키지의 경우 scanBasePackages
속성 이용
@SpringBootApplication(scanBasePackages = "com.*")
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
XXXService service = ctx.getBean("service", XXXService.class); // 빈 접근
}
}
Devtools
스프링 부트는 코드 변경시 서버 리로딩이 자동으로 안된다. 이 때,Devtools
의존성을 이용하면 자동으로 리로딩 가능
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
'WebServer > Spring Boot' 카테고리의 다른 글
[Spring/JPA] Spring Data JPA란? (0) | 2023.11.22 |
---|---|
[스프링부트] JSP 사용하는 SpringBoot MVC (0) | 2023.09.22 |
[스프링부트] AOP (Aspect Oriented Programming) (1) | 2023.09.22 |
[스프링부트] I18N 다국어 처리하기 (0) | 2023.09.22 |
Java Spring Boot
는 Spring으로 애플리케이션을 만들 때, 쉽고 빠르게 만들 수 있도록 도와주는 프레임워크
스프링 vs 스프링부트
Spring 🌱 | Spring Boot🌱 | |
---|---|---|
정의 | Enterprise Application을 개발하는데 사용되는 오픈소스 경량 프레임워크 | REST API 개발에 사용되며, 기존의 스프링 프레임워크 위에 구축 |
중요기능 | Dependency Injection | Autoconfiguration |
사용방식 | 설정 파일 작성, 빈 객체 등록, 빈 객체 간의 의존성 설정 | 간단한 설정과 의존성 처리 |
설정파일 | Bean Configuration XML파일 | application.properties 또는 application.yml 이용 |
목적 | 느슨하게 결합된 응용프로그램 | 독립 실행형 응용 프로그램 |
서버 | 별도의 외장 웹 서버 설치 | 내장된 서버 존재 |
의존성 | 필요한 의존성 각각 추가 | 여러 의존성을 패키지로 묶은 starter 이용 |
코드 크기 | 많은 코드 작성 | 코드 라인 축소 |
인메모리 데이터베이스 |
인메모리 데이터베이스 지원 X | 인메모리 데이터베이스 지원 O |
배포 | war 파일로 빌드하여 배포 | 독립적으로 실행 가능한 jar 파일로 배포 가능 (war도 가능) ➜ 클라우드 및 도커 같은 가상화환경에 빠르게 배포 가능 |
mvc 기본화면 | JSP 파일 | thymeleaf 타임리프 (*.html) |
DB연동 | commons.dbcp2 라이브러리 사용 | HicariCP 라이브러리 사용 |
프로젝트 생성
[New] - [Spring Starter Project]

pom.xml 에서 version 2.4.2 로 변경
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.2</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
Application.java
@SpringBootApplication
어노테이션을 사용한다. 해당 어노테이션은 다음과 같은 기능을 포함하고 있다.
@SpringBootConfiguration
: 스프링부트의 자동 설정 메커니즘 활성화@EnableAutoConfiguration
: starter와 application.properties 으로 설정 자동화@Component
: 자동으로 빈 스캔
@SpringBootApplication
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
XXXService service = ctx.getBean("service", XXXService.class); // 빈 접근
}
}
빈 생성
@SpringBootApplication
의 빈 패키지와 같거나 서브패키지는 자동으로 빈으로 등록되어 생성된다.
💡 해당 빈에 @Controller @Service @Repository @Component @Configuration 설정 필수
다른 패키지의 경우 scanBasePackages
속성 이용
@SpringBootApplication(scanBasePackages = "com.*")
public class Application {
public static void main(String[] args) {
ApplicationContext ctx = SpringApplication.run(Application.class, args);
XXXService service = ctx.getBean("service", XXXService.class); // 빈 접근
}
}
Devtools
스프링 부트는 코드 변경시 서버 리로딩이 자동으로 안된다. 이 때,Devtools
의존성을 이용하면 자동으로 리로딩 가능
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
'WebServer > Spring Boot' 카테고리의 다른 글
[Spring/JPA] Spring Data JPA란? (0) | 2023.11.22 |
---|---|
[스프링부트] JSP 사용하는 SpringBoot MVC (0) | 2023.09.22 |
[스프링부트] AOP (Aspect Oriented Programming) (1) | 2023.09.22 |
[스프링부트] I18N 다국어 처리하기 (0) | 2023.09.22 |