관리 메뉴

웹개발 블로그

[Boot] 스프링 부트 정리 본문

◆ SPRING BOOT/정리

[Boot] 스프링 부트 정리

쿠키린 2024. 10. 14. 23:59

JDK 버전(1.9 이전과 이후)

JDK는 1.9(JDK 1.9부터는 JDK 1.9라고 안하고 JDK nine(나인)이라고 부름) 

나인 이후부터는 이전 JDK와는 다르다고 봐도 됨.

내부적인 모듈시스템을 도입하면서 많이 변화되었다.

 

스프링 개발 툴( 전문개발 툴로 이용하자 )

1. STS (Spring Tool Suite) : 전자정부 프레임워크 개발 툴과 유사, 무료 툴

- 오픈 소스로 제공하고 있음.

- 전자정부 프레임워크도 sts 기반이다.

 

2. 인텔리제이 (공식적인 툴은 아니지만 편리성 우수함, 무료/유료버전 )

- jetbrain에서 개발

 

스프링 부트 소개

스프링부트 : 차세대 스프링 프레임워크

 

User

 ↕️

Spring Boot

 ↕️

Spring

(Data, Batch, Integration, Web, JDBC, Security 

 

  • 스프링 기반 production-ready 어플리케이션 개발
  • Convention over Configuration을 따름
  • 톰캣이 내장되어 단독으로 실행 가능
  • 설정을 최대한 줄이고 xml 설정파일 필요 없음.

 

스프링 부트 프로젝트 기본 구조 (maven인 경우)

spring.io 사이트에서 생성하게 되면 

🔽아래 파일들을 기본적으로 만들어 줌.

pom.xml : 메이븐 빌드 명세( gradle은 build.gradle)

mvnw :  maven wrapper의 약자, Maven을 편리하게 이용하게 해줌. 이 파일의 용도는 별도의 Maven 설치 없이도 Maven 이용 가능(버전을 명시하지 않으면 최신버전으로 사용됨)   (gradle 설정으로 선택 했을경우에 gradlew 생성됨.)

main class : @SpringBootApplication 애노테이션이 붙음(실행 클래스)

application.properties  :필요한 구성을 추가하는 프로퍼티

test.java  : Junit Test class

+

그외 사용해야할 파일은 직접 만들면된다.

 

스프링 부트 설정 파일

스프링 버전이 올라갈 수록 xml 작성하는 설정은 줄어들었다.

  • application.properties
    • 단순한 text파일, key-value 형식
    • resource 폴더 안에 있음.
    • 선택적인 파일( 사용하지 않아도 됨. )
    • 명시적으로 요청하는 부분이 없음
    • spring boot가 로드되면 자동으로 이 파일 로드
  • 기존의 XML 설정파일도 가져올 수 있음
    • main.java 파일에 @ImportResource("classpath:spring/root-context.xml") 어노테이션 사용~

스프링 부트 개발자 툴

스프링 부트 개발모드 지원

  • 타임리프 등 탬플릿에 대한 개발 캐싱을 비활성화 처리
  • 소스의 변경이 일어나면 스프링 부트 서버가 새로 시작되면 바로 반영
  • HTML, CSS 부분을 변경하면 바로 브라우저에서 감지하여 반영
    • 크롬, 파이어폭스, 사파리는 http://livereload.com/extensions 플로그인 설치 필요

설정

디펜던시 추가 : spring-boot-devtools

🔽 개발에 편리한 모듈을 지원해줌.

<dependency>
	<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtoos</artifactId>
<dependency>

스프링 부트 '테스트'

  • 스프링은 TDD를 권장함.
  • 테스트 의존성은 스프링부트 프로젝트 생성 시 자동 추가됨.
    • 쉽고, 일관성있는 테스트를 지원함.

🔽@SpringBootTest 를 사용하기 위해 dependency 추가

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
<dependency>