스프링 부트 인터뷰 질문
1. 스프링 부트란?
새로운 기능이 추가되면서 Spring은 수년에 걸쳐 더욱 복잡해졌습니다. 페이지를 방문하면 애플리케이션에서 사용할 수 있는 모든 Spring 프로젝트의 다양한 기능을 볼 수 있습니다. 새 Spring 프로젝트를 시작해야 하는 경우 빌드 경로를 추가하거나 maven 종속성을 추가하고, 애플리케이션 서버를 구성하고, 스프링 구성을 추가해야 합니다. 따라서 새로운 봄 프로젝트를 시작하는 것은 이제 모든 것을 처음부터 해야 하기 때문에 많은 노력이 필요합니다.
Spring Boot는 이 문제에 대한 해결책입니다. Spring Boot는 기존의 Spring 프레임워크 위에 구축되었습니다. 스프링 부트를 사용하면 이전에 수행해야 했던 모든 상용구 코드와 구성을 피할 수 있습니다. 따라서 Spring Boot는 최소한의 노력으로 기존 Spring 기능을 보다 강력하게 사용할 수 있도록 도와줍니다.
2. SpringBoot를 사용하는 이유
Spring Boot에는 다음과 같은 많은 장점이 있습니다.
1. 독립 운영
Spring Boot는 또한 Tomcat, Jetty 등의 다양한 서블릿 컨테이너를 내장하고 있습니다. 이제 더 이상 war 패키지로 패키징하여 컨테이너에 배포할 필요가 없습니다. Spring Boot는 실행 가능한 jar 패키지로 패키징되어 있는 한 독립적으로 실행할 수 있으며 모든 종속 패키지는 jar 패키지에 있습니다.
2. 단순화된 구성
spring-boot-starter-web starter는 자동으로 다른 구성 요소에 의존하여 maven의 구성을 줄입니다.
3. 자동 구성
Spring Boot는 현재 클래스 경로에 있는 클래스 및 jar 패키지에 따라 자동으로 빈을 구성할 수 있으며, 예를 들어 spring-boot-starter-web 스타터를 추가하면 별도의 설정 없이 웹 기능을 가질 수 있습니다.
넷째, 코드 생성 및 XML 구성 없음
Spring Boot 설정 과정에서 코드 생성이 없고, XML 설정 파일 없이 모든 설정 작업을 완료할 수 있는데, 이 모든 것이 Spring 4.x의 핵심 기능 중 하나인 Conditional Annotation의 도움으로 이루어진다.
5. 애플리케이션 모니터링
Spring Boot는 서비스 및 애플리케이션을 모니터링하고 상태 확인을 수행하기 위한 일련의 엔드포인트를 제공합니다.
3. 스프링 부트의 장점은 무엇입니까?
스프링 부트의 장점은 다음과 같습니다.
-
1. 개발, 테스트 시간 및 노력을 줄입니다.
-
2. JavaConfig를 사용하여 XML 사용을 피하십시오.
-
3. 많은 수의 Maven 가져오기 및 다양한 버전 충돌을 피하십시오.
-
4. 개발 방법에 대한 조언을 제공합니다.
-
5. 기본값을 제공하여 빠르게 개발을 시작합니다.
-
6. 별도의 웹서버가 필요하지 않습니다. 즉, 더 이상 Tomcat, Glassfish 등을 시작할 필요가 없습니다.
-
7. web.xml 파일이 없기 때문에 구성이 덜 필요합니다. @Configuration 주석이 달린 클래스를 추가한 다음 @Bean 주석이 달린 메소드를 추가하면 Spring이 자동으로 객체를 로드하고 이전과 같이 관리합니다. Spring이 필요로 하는 의존성을 autowire하도록 bean 메소드에 @Autowired를 추가할 수도 있다.
-
8. 환경 기반 구성 이러한 속성을 사용하여 사용 중인 환경을 애플리케이션에 전달할 수 있습니다. -Dspring.profiles.active={environment}. 기본 애플리케이션 속성 파일을 로드한 후 Spring은 (application{environment}.properties)에 후속 애플리케이션 속성 파일을 로드합니다.
4. Spring Boot의 핵심 주석은 무엇입니까? 주로 어떤 주석으로 구성되어 있습니까?
시작 클래스의 주석은 @SpringBootApplication이며 이는 Spring Boot의 핵심 주석이기도 하며 주요 조합에는 다음 세 가지 주석이 포함됩니다.
@SpringBootConfiguration: @Configuration 주석을 결합하여 구성 파일의 기능을 구현합니다. @EnableAutoConfiguration: 자동 구성 기능을 켜거나 데이터 소스 자동 구성 기능을 끄는 것과 같은 자동 구성 옵션을 끕니다: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class }).
@ComponentScan: 스프링 컴포넌트 스캔
5. 스프링 부트를 실행하는 방법은 무엇입니까?
1) 명령을 패키지화하거나 실행할 컨테이너에 넣습니다. 2) Maven/Gradle 플러그인을 사용하여 실행합니다. 3) 실행할 기본 메서드를 직접 실행합니다.
6. 스프링 부트에서 스타터를 이해하는 방법?
스타터란 무엇입니까:
스타터는 애플리케이션에 통합할 수 있는 일련의 종속성 패키지를 포함하는 스타터로 이해될 수 있습니다.어디서나 샘플 코드 및 종속성 패키지를 찾지 않고도 Spring 및 기타 기술을 한 번에 통합할 수 있습니다. Spring JPA를 사용하여 데이터베이스에 액세스하려는 경우
springboot-starter-data-jpa 스타터 종속성을 추가하기만 하면 사용할 수 있습니다. 스타터에는 프로젝트에 필요한 많은 종속성이 포함되어 있으며 빠르고 지속적으로 실행할 수 있으며 지원되는 관리 전이 종속성 집합입니다.
이름이 지정된 스타터:
Spring Boot의 공식 스타터 이름은 spring-boot-starter-이며 특정 애플리케이션 유형을 나타냅니다. 타사 스타터는 spring-boot로 시작할 수 없으며 공식적으로 Spring Boot에 예약되어 있습니다.
일반적으로 mybatis의 mybatis -spring-boot-starter 와 같이 타사 이름은 다음과 같이 지정해야 합니다 .
스타터 카테고리:
1. 스프링 부트 애플리케이션 클래스 스타터
2. 스프링 부트 프로덕션 스타터
.기타 타사 런처
7. Spring Boot가 시작될 때 특정 코드를 실행하는 방법은 무엇입니까?
Spring Boot가 시작될 때 특정 코드를 실행하고 싶다면 ApplicationRunner 또는 CommandLineRunner 인터페이스를 구현할 수 있습니다.이 두 인터페이스는 동일한 방식으로 구현되며 실행 메소드만 제공합니다. CommandLineRunner: 명령줄 매개변수 가져오기 시작
8. Spring Boot를 실행하려면 별도의 컨테이너가 필요합니까?
필요 없음, Tomcat/Jetty와 같은 내장 컨테이너
9. Spring Boot에서 모니터란 무엇입니까?
스프링 부트 액추에이터는 스프링 부트 프레임워크에서 중요한 기능 중 하나입니다. 스프링 부트 모니터는 프로덕션에서 실행 중인 애플리케이션의 현재 상태에 액세스하는 데 도움이 됩니다. 프로덕션 환경에서 확인하고 모니터링해야 하는 몇 가지 메트릭이 있습니다. 일부 외부 응용 프로그램에서도 이러한 서비스를 사용하여 관련 직원에게 경고 메시지를 트리거할 수 있습니다. 모니터 모듈은 상태를 확인하기 위해 HTTP URL로 직접 액세스할 수 있는 REST 끝점 세트를 노출합니다.
10. Spring Boot를 사용하여 예외 처리를 구현하는 방법은 무엇입니까?
Spring은 ControllerAdvice를 사용하여 예외를 처리하는 매우 유용한 방법을 제공합니다. 우리는 ControlerAdvice 클래스를 구현하여 컨트롤러 클래스에서 발생한 모든 예외를 처리합니다.
11. 스프링 부트의 스타터를 어떻게 이해합니까?
스타터는 애플리케이션에 통합할 수 있는 일련의 종속성 패키지를 포함하는 스타터로 이해될 수 있습니다.어디서나 샘플 코드 및 종속성 패키지를 찾지 않고도 Spring 및 기타 기술을 한 번에 통합할 수 있습니다. Spring JPA를 사용하여 데이터베이스에 액세스하려면
spring-boot-starter-data-jpa 스타터 종속성을 추가하고 사용할 수 있습니다.
12. 일반적으로 사용되는 springboot 스타터는 무엇입니까?
spring-boot-starter-web 임베디드 바람둥이 및 웹 개발에는 서블릿 및 jsp 지원이 필요합니다.
spring-boot-starter-data-jpa 데이터베이스 지원 spring-boot-starter-data-redis redis 데이터베이스 지원 spring-boot-starter-data-solr solr 지원
mybatis-spring-boot-starter 타사 mybatis 통합 스타터
13. SpringBoot가 핫 배포를 실현하는 방법은 무엇입니까?
두 가지 주요 방법이 있습니다: Spring
Loaded Spring-boot-devtools
14. Spring Boot 설정 로딩 순서 이해하기
Spring Boot에서는 다음과 같은 방법으로 구성을 로드할 수 있습니다. 1) 속성 파일;
2) YAML 파일 3) 시스템 환경 변수
4) 명령줄 인수 등...
Java 아키텍처 개발 교환에 오신 것을 환영합니다: 857710406, 더 많은 인터뷰 질문과 고급 비디오가 무료로 배포됩니다!
15. Spring Boot의 핵심 설정 파일은 무엇입니까? 그들의 차이점은 무엇입니까?
Spring Boot의 핵심 설정 파일은 애플리케이션과 부트스트랩 설정 파일입니다. 애플리케이션 구성 파일은 이해하기 쉽고 주로 Spring Boot 프로젝트의 자동 구성에 사용됩니다. 부트스트랩 구성 파일에는 다음과 같은 애플리케이션 시나리오가 있습니다.
.Spring Cloud Config 설정 센터를 사용할 때, 부트스트랩 설정 파일에 설정 센터에 연결된 설정 속성을 추가하여 외부 설정 센터의 설정 정보를 불러와야 합니다.
재정의할 수 없는 일부 고정 속성.
.일부 암호화/복호화 시나리오
16. 스프링 부트와 ActiveMQ를 통합하는 방법
Spring Boot와 ActiveMQ를 통합하기 위해
spring-boot-starter-activemq 종속성을 사용합니다. 구성이 거의 필요하지 않으며 상용구 코드가 필요하지 않습니다.
17. JavaConfig란 무엇입니까?
Spring JavaConfig는 Spring IoC 컨테이너를 구성하기 위한 순수한 Java 접근 방식을 제공하는 Spring 커뮤니티의 제품입니다. 따라서 XML 구성을 피하는 데 도움이 됩니다. JavaConfig 사용의 장점은 다음과 같습니다.
1. 객체 지향 구성. 구성은 JavaConfig에서 클래스로 정의되므로 사용자는 Java의 객체 지향 기능을 최대한 활용할 수 있습니다. 한 구성 클래스는 다른 구성 클래스에서 상속하고 해당 @Bean 메서드를 재정의하는 등의 작업을 수행할 수 있습니다.
2. XML 구성을 줄이거나 제거합니다. 종속성 주입 원칙을 기반으로 하는 외부화된 구성의 이점이 입증되었습니다. 그러나 많은 개발자는 XML과 Java 사이를 왔다갔다 하는 것을 원하지 않습니다. JavaConfig는 개발자에게 XML 구성과 유사한 개념으로 Spring 컨테이너를 구성하는 순수한 Java 방법을 제공합니다. 기술적으로 말하면 JavaConfig 구성 클래스만 사용하여 컨테이너를 구성할 수 있지만 실제로 많은 사람들은 JavaConfig와 XML을 혼합하여 일치시키는 것이 이상적이라고 생각합니다.
3. 유형 안전 및 리팩토링 친화적입니다. JavaConfig는 Spring 컨테이너를 구성하는 유형 안전 방법을 제공합니다. Java 5.0의 제네릭 지원 덕분에 이제 캐스팅이나 문자열 기반 조회 없이 이름 대신 유형별로 빈을 검색할 수 있습니다.
18. 서버를 다시 시작하지 않고 Spring Boot에서 변경 사항을 어떻게 다시 로드합니까?
이것은 DEV 도구를 사용하여 달성할 수 있습니다. 이 종속성을 사용하여 변경 사항을 저장할 수 있으며 포함된 바람둥이가 다시 시작됩니다. Spring Boot에는 개발자 생산성 향상에 도움이 되는 개발 도구(DevTools) 모듈이 있습니다. Java 개발자의 주요 과제는 파일 변경 사항을 서버에 자동으로 배포하고 서버를 자동으로 다시 시작하는 것입니다. 개발자는 서버를 다시 시작하지 않고도 Spring Boot에서 변경 사항을 다시 로드할 수 있습니다. 이렇게 하면 매번 수동으로 변경 사항을 배포할 필요가 없습니다. Spring Boot에는 첫 번째 버전이 출시되었을 때 이 기능이 없었습니다. 개발자들이 가장 많이 요청하는 기능입니다. DevTools 모듈은 개발자의 요구를 완전히 충족합니다. 이 모듈은 프로덕션 환경에서 비활성화됩니다. 또한 응용 프로그램을 더 잘 테스트하기 위해 H2 데이터베이스 콘솔을 제공합니다.
org.springframework.boot spring-boot-devtools 참19. Spring Boot에서 모니터란 무엇입니까?
스프링 부트 액추에이터는 스프링 부트 프레임워크에서 중요한 기능 중 하나입니다. 스프링 부트 모니터는 프로덕션에서 실행 중인 애플리케이션의 현재 상태에 액세스하는 데 도움이 됩니다. 프로덕션 환경에서 확인하고 모니터링해야 하는 몇 가지 메트릭이 있습니다. 일부 외부 응용 프로그램에서도 이러한 서비스를 사용하여 관련 직원에게 경고 메시지를 트리거할 수 있습니다. 모니터 모듈은 상태를 확인하기 위해 HTTP URL로 직접 액세스할 수 있는 REST 끝점 세트를 노출합니다.
20. Spring Boot에서 Actuator 엔드포인트 보안을 비활성화하는 방법은 무엇입니까?
모든 민감한 HTTP 끝점은 기본적으로 안전하며 ACTUATOR 역할을 가진 사용자만 액세스할 수 있습니다. 보안은
표준 HttpServletRequest.isUserInRole 메서드를 사용하여 구현됩니다. 보안을 비활성화하는 데 사용할 수 있습니다. 액츄에이터 엔드포인트가 방화벽 뒤에서 액세스되는 경우에만 보안을 비활성화하는 것이 좋습니다.
21. 커스텀 포트에서 Spring Boot 애플리케이션을 실행하는 방법은 무엇입니까?
커스텀 포트에서 Spring Boot 애플리케이션을 실행하기 위해 application.properties에서 포트를 지정할 수 있습니다.
서버.포트=8090
22. YAML이란 무엇입니까?
YAML은 사람이 읽을 수 있는 데이터 직렬화 언어입니다. 일반적으로 구성 파일에 사용됩니다.
속성 파일과 비교하여 YAML 파일은 구성 파일에 복잡한 속성을 추가하려는 경우 더 구조적이고 덜 혼란스럽습니다. YAML에는 계층적 구성 데이터가 있음을 알 수 있습니다.
23. Spring Boot 애플리케이션의 보안을 구현하는 방법은 무엇입니까?
Spring Boot 보안을 구현하려면
spring-boot-starter-security 종속성을 사용하고 보안 구성을 추가해야 합니다. 아주 적은 코드가 필요합니다. 구성 클래스는 WebSecurityConfigurerAdapter를 확장하고 해당 메서드를 재정의해야 합니다.
24. Spring Boot와 ActiveMQ를 통합하는 방법은 무엇입니까?
Spring Boot와 ActiveMQ를 통합하기 위해 우리는 다음을 사용합니다.
의존성. 구성이 거의 필요하지 않으며 상용구 코드가 필요하지 않습니다.
25. Spring Boot를 사용하여 페이징 및 정렬을 구현하는 방법은 무엇입니까?
Spring Boot로 페이지 매김을 구현하는 것은 매우 간단합니다. Spring Data-JPA를 사용하여 리포지토리 메서드에 페이징 가능을 전달하는 것이 가능합니다.
26. 스웨거란? Spring Boot로 구현하셨나요?
Swagger는 Swagger UI를 사용하여 프런트 엔드 개발자를 위한 온라인 샌드박스를 제공하여 API를 시각화하는 데 널리 사용됩니다. Swagger는 RESTful 웹 서비스의 시각적 표현을 생성하기 위한 도구, 사양 및 완전한 프레임워크 구현입니다. 서버와 동일한 속도로 문서를 업데이트할 수 있습니다. Swagger를 통해 적절하게 정의되면 소비자는 최소한의 구현 논리를 사용할 수 있습니다.
원격 서비스를 이해하고 상호 작용합니다. 따라서 Swagger는 전화 서비스에서 추측을 배제합니다.
27. 스프링 프로파일이란?
Spring Profile은 사용자가 설정 파일(dev, test, prod 등)을 기반으로 Bean을 등록할 수 있도록 합니다. 따라서 애플리케이션이 개발 중에 실행 중일 때 일부 빈만 로드할 수 있는 반면 프로덕션에서는 일부 다른 빈을 로드할 수 있습니다. Swagger 문서가 QA 환경 전용이고 다른 모든 문서는 비활성화되어야 한다는 요구 사항이 있다고 가정해 보겠습니다. 이것은 구성 파일을 사용하여 수행할 수 있습니다. Spring Boot는 구성 파일 작업을 매우 간단하게 만듭니다.
28. 스프링 배치란?
Spring Boot Batch는 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 많은 수의 레코드를 처리할 때 중요한 재사용 가능한 기능을 제공합니다. 또한 최적화 및 파티셔닝 기술을 통해 매우 높은 배치 및 고성능 배치 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다. 단순하고 복잡한 대용량 배치 작업은 프레임워크를 활용하여 확장성이 뛰어난 방식으로 상당한 양의 정보를 처리할 수 있습니다.
29. FreeMarker 템플릿이란 무엇입니까?
FreeMarker는 처음에 MVC 소프트웨어 아키텍처를 사용하여 동적 웹 페이지 생성에 중점을 둔 Java 기반 템플릿 엔진입니다. Freemarker 사용의 주요 이점은 프레젠테이션과 비즈니스 계층이 완전히 분리된다는 것입니다. 프로그래머는 애플리케이션 코드를 처리할 수 있고 디자이너는 html 페이지 디자인을 처리할 수 있습니다. 마지막으로 freemarker를 사용하여 이들을 결합하여 최종 출력 페이지를 제공할 수 있습니다.
30. Spring Boot를 사용하여 예외 처리를 구현하는 방법은 무엇입니까?
Spring은 ControllerAdvice를 사용하여 예외를 처리하는 매우 유용한 방법을 제공합니다. 우리는 ControlerAdvice 클래스를 구현하여 컨트롤러 클래스에서 발생하는 모든 예외를 처리합니다.
31. 어떤 스타터 maven 종속성을 사용합니까?
아래 종속성 중 일부가 사용됩니다.
spring-boot-starter-activemq
spring-boot-starter-security
이렇게 하면 종속성을 추가하고 버전 충돌을 줄이는 데 도움이 됩니다.
32. CSRF 공격이란?
CSRF는 Cross Site Request Forgery의 약자입니다. 이것은 최종 사용자가 현재 인증된 웹 응용 프로그램에서 원치 않는 작업을 수행하도록 하는 공격입니다. CSRF 공격은 공격자가 위조된 요청에 대한 응답을 볼 수 없기 때문에 특히 데이터 도난이 아닌 상태 변경 요청을 대상으로 합니다.
이렇게 하면 종속성을 추가하고 버전 충돌을 줄이는 데 도움이 됩니다.
33. 웹소켓이란?
WebSocket은 단일 TCP 연결을 통해 전이중 통신 채널을 제공하는 컴퓨터 통신 프로토콜입니다.
-
1. WebSocket은 양방향입니다. WebSocket 클라이언트 또는 서버를 사용하여 메시지 전송을 시작할 수 있습니다.
-
2. WebSocket은 전이중입니다. 클라이언트와 서버 통신은 서로 독립적입니다.
-
3. 단일 TCP 연결 - 초기 연결은 HTTP를 사용하고 이 연결은 소켓 기반 연결로 업그레이드됩니다. 이 단일 연결은 이후의 모든 통신에 사용됩니다.
-
4. 가벼움 - http에 비해 WebSocket 메시지 데이터 교환이 훨씬 가볍습니다.
34. AOP란 무엇입니까?
소프트웨어 개발 프로세스에서 응용 프로그램의 여러 지점에 걸쳐 있는 기능을 교차 문제라고 합니다. 이러한 교차 문제는 애플리케이션의 주요 비즈니스 로직과 동일하지 않습니다. 따라서 이러한 교차 문제를 비즈니스 로직과 분리하는 것이 AOP(Aspect Oriented Programming)가 필요한 곳입니다.
35. Apache Kafka란 무엇입니까?
Apache Kafka는 분산 발행-구독 메시징 시스템입니다. 분산 응용 프로그램을 구축할 수 있는 확장 가능한 내결함성 게시-구독 메시징 시스템입니다. 이것은 Apache 최상위 프로젝트입니다. Kafka는 오프라인 및 온라인 메시지 소비에 적합합니다.
36. 모든 Spring Boot 마이크로서비스를 어떻게 모니터링할 수 있습니까?
Spring Boot는 개별 마이크로서비스에 대한 메트릭을 모니터링하기 위한 모니터 엔드포인트를 제공합니다. 이러한 끝점은 응용 프로그램에 대한 정보(예: 작동 여부)와 해당 구성 요소(예: 데이터베이스 등)가 제대로 작동하는지 여부에 대한 정보를 얻는 데 유용합니다. 하지만 모니터 사용의 가장 큰 단점이나 어려움은 어플리케이션의 상태나 상태를 알기 위해서는 어플리케이션의 지식 포인트를 개별적으로 열어야 한다는 점입니다. 50개의 애플리케이션이 포함된 마이크로서비스를 상상해 보십시오. 관리자는 50개의 모든 애플리케이션에 대해 실행 터미널을 눌러야 합니다. 이 상황을 처리하는 데 도움이 되도록 에서 오픈 소스 프로젝트를 사용합니다. 여러 애플리케이션에 대한 메트릭을 시각화할 수 있는 웹 UI를 제공하는 Spring Boot Actuator 위에 구축되었습니다.
37. Spring Boot 설정 파일의 형식은 무엇입니까? 이들의 차이점은 무엇인가요?
.properties와 .yml의 주요 차이점은 쓰기 형식이 다르다는 것입니다. 1).속성
app.user.name=자바 스택
2).yml
앱:
사용자:
이름: javastack
또한 .yml 형식은 구성을 가져오기 위한 @PropertySource 주석을 지원하지 않습니다.
38. Spring Boot 기능을 활성화하는 방법은 무엇입니까?
1)
spring-boot-starter-parent 프로젝트 상속 2) spring-boot-dependencies 프로젝트 종속성 가져오기
39. Spring Boot의 디렉토리 구조는 무엇입니까?
cn
±javastack
±MyApplication.java|
±Customer.java
±CustomerController.java±CustomerService.java±CustomerRepository.java
±order
±Order.java
±OrderController.java±OrderService.java±OrderRepository.java
이 디렉토리 구조는 주류이며 권장되는 방법이며 @SpringBootApplication 주석이 기본 항목 클래스에 추가되어 자동 구성, 구성 요소 스캔 등과 같은 Spring Boot의 다양한 기능을 활성화합니다.
40. 스프링 부트를 실행하는 방법은 무엇입니까?
1) 명령을 패키지화하거나 실행할 컨테이너에 넣습니다. 2) Maven/Gradle 플러그인을 사용하여 실행합니다. 3) 실행할 기본 메서드를 직접 실행합니다.
41. Spring Boot 자동 설정의 원리는 무엇입니까?
@EnableAutoConfiguration, @Configuration, @ConditionalOnClass 주석은 자동 설정의 핵심으로 첫째, 설정 파일이어야 하고, 둘째, 클래스 경로에 이 클래스가 있는지 여부에 따라 자동으로 설정된다.
42. Spring Boot가 시작될 때 특정 코드를 실행하는 방법은 무엇입니까?
ApplicationRunner 또는 CommandLineRunner 인터페이스를 구현할 수 있으며 이 두 인터페이스는 동일한 방식으로 구현되며 둘 다 하나의 실행 메서드만 제공합니다.
43. Spring Boot가 구성을 읽어야 하는 방법은 몇 가지입니까?
Spring Boot는 @PropertySource, @Value, @Environment, @ConfigurationProperties를 통해 변수를 바인딩할 수 있습니다.
44. Spring Boot는 어떤 로깅 프레임워크를 지원합니까? 권장되는 기본 로깅 프레임워크는 무엇입니까?
Spring Boot는 Java Util Logging, Log4j2, Lockback을 로깅 프레임워크로 지원합니다. Starters 스타터를 사용하는 경우 Spring Boot는 Logback을 기본 로깅 프레임워크로 사용합니다.
45. Spring Boot는 다양한 환경 구성의 여러 세트를 어떻게 정의합니까?
다음과 같은 여러 구성 파일 세트를 제공합니다.
application.properties
application-dev.properties
application-test.properties
application-prod.properties
런타임 시 특정 구성 파일 지정
46. Spring Boot는 이전 Spring 프로젝트와 어떻게 호환되나요?
호환성을 위해 @ImportResource 주석을 사용하여 이전 Spring 프로젝트 구성 파일을 가져옵니다.
47. Spring Boot 애플리케이션을 보호하는 방법은 무엇입니까?
프로덕션에서 HTTPS 사용
Snyk를 사용하여 종속성을 확인하고 최신 버전으로 업그레이드하십시오.
CSRF 보호 활성화
콘텐츠 보안 정책으로 XSS 공격 방지…
48. Spring Boot 2.X에는 어떤 새로운 기능이 있습니까? 1.X와 어떤 차이가 있나요?
구성 변경
JDK 버전 업그레이드
타사 클래스 라이브러리 업그레이드
HTTP/2를 지원하는 반응형 Spring 프로그래밍
구성 속성 바인딩에 대한 추가 개선 사항 및 개선 사항…
49. 서버를 다시 시작하지 않고 Spring Boot에서 변경 사항을 어떻게 다시 로드합니까?
이것은 DEV 도구를 사용하여 달성할 수 있습니다. 이 종속성을 사용하여 변경 사항을 저장할 수 있으며 포함된 바람둥이가 다시 시작됩니다.
Spring Boot에는 개발자 생산성 향상에 도움이 되는 개발 도구(DevTools) 모듈이 있습니다. Java 개발자의 주요 과제는 파일 변경 사항을 서버에 자동으로 배포하고 서버를 자동으로 다시 시작하는 것입니다.
개발자는 서버를 다시 시작하지 않고도 Spring Boot에서 변경 사항을 다시 로드할 수 있습니다. 이렇게 하면 매번 수동으로 변경 사항을 배포할 필요가 없습니다. Spring Boot에는 첫 번째 버전이 출시되었을 때 이 기능이 없었습니다.
개발자들이 가장 많이 요청하는 기능입니다. DevTools 모듈은 개발자의 요구를 완전히 충족합니다. 이 모듈은 프로덕션 환경에서 비활성화됩니다. 또한 응용 프로그램을 더 잘 테스트하기 위해 H2 데이터베이스 콘솔을 제공합니다.
org.springframework.bootspring-boot-devtoolstrue
50. 스프링부트가 mybatis를 통합하는 과정
mybatis의 스타터 maven 종속성 추가
org.mybatis.spring.bootmybatis-spring-boot-starter1.2.0
mybatis의 인터페이스에 @Mapper 주석을 추가하여 application.yml에 데이터 소스 정보를 구성합니다.
51. Spring Boot, Spring MVC 및 Spring의 차이점은 무엇입니까?
스프링프레임
Spring Framework의 가장 중요한 기능은 의존성 주입이다. 모든 SpringModule은 종속성 주입 또는 IOC 제어 역전입니다.
DI 또는 IOC를 적절하게 사용하면 느슨하게 결합된 응용 프로그램을 개발할 수 있습니다. 느슨하게 결합된 응용 프로그램의 단위 테스트를 쉽게 수행할 수 있습니다.
SpringMVC
Spring MVC는 웹 애플리케이션 개발에 대한 분리된 접근 방식을 제공합니다. DispatcherServelet, MoudlAndView 및 ViewResolver와 같은 몇 가지 간단한 개념을 사용하면 웹 애플리케이션 개발이 매우 간단해집니다.
스프링부트
Spring과 SpringMVC의 문제점은 설정해야 할 매개변수가 많다는 것이다.
Spring Boot는 자동 구성되고 시작된 프로젝트로 이 문제를 해결합니다. 프로덕션 준비 애플리케이션을 더 빠르게 빌드하기 위해 Spring Boot는 일부 기능 외 기능을 제공합니다.
52. 스프링 부트 스테이터란?
런처는 자체 프로그램에 배치할 수 있는 편리한 종속성 설명자 세트입니다. 설명자에 따라 많은 샘플 코드를 검색하고 복사하여 붙여넣을 필요 없이 필요한 모든 Spring 및 관련 기술을 한 곳에서 얻을 수 있습니다.
예를 들어, Sping과 JPA를 사용하여 데이터베이스에 액세스하려면 프로젝트에
spring-boot-starter-data-jpa 종속성을 포함하기만 하면 됩니다.
질문 4 Staters에 대해 더 설명하기 위해 예를 들어 주시겠습니까?
Stater - Spring Boot Stater Web의 예를 살펴보겠습니다.
웹 애플리케이션 또는 REST 서비스를 노출하는 애플리케이션을 개발하려는 경우. Spring Boot Start Web이 선호됩니다. Spring Initializr를 사용하여 Spring Boot Start Web을 위한 빠른 프로젝트를 생성해 봅시다.
Spring Boot Start 웹에 대한 종속성
org.springframework.boot 스프링 부트 스타터 웹아래 스크린샷은 애플리케이션에 추가된 다양한 종속성입니다.
종속성은 다음과 같이 나눌 수 있습니다.
모든 클래식 웹 애플리케이션은 이러한 모든 종속성을 사용합니다. Spring Boot Starter Web은 이러한 종속성과 함께 미리 패키징되어 제공됩니다.
개발자로서 더 이상 이러한 종속성과 호환 가능한 버전에 대해 걱정할 필요가 없습니다.
53. Spring Boot가 제공하는 다른 스타터 프로젝트 옵션은 무엇입니까?
Spring Boot는 또한 특정 유형의 애플리케이션을 개발하기 위한 일반적인 종속성을 포함하여 다른 시작 프로젝트를 제공합니다.
spring-boot-starter-web-services - SOAP 웹 서비스 spring-boot-starter-web - 웹 및 RESTful 애플리케이션 spring-boot-starter-test - 단위 및 통합 테스트 spring-boot-starter-jdbc - 기존 JDBC
spring-boot-starter-hateoas - 서비스에 HATEOAS 기능 추가
spring-boot-starter-security - SpringSecurity를 사용한 인증 및 권한 부여 spring-boot-starter-data-jpa - Hibernate를 사용한 Spring Data JPA
spring-boot-starter-data-rest - Spring Data REST로 간단한 REST 서비스 게시
54. Spring은 어떻게 생산 준비가 된 애플리케이션을 신속하게 생성합니까?
Spring Boot는 빠른 프로덕션 준비 애플리케이션 전용입니다. 이를 위해 캐싱, 로깅, 모니터링 및 내장 서버와 같은 일부 기능 외 기능을 즉시 제공합니다.
spring-boot-starter-actuator - 애플리케이션 모니터링 및 추적과 같은 일부 고급 기능 사용
spring-boot-starter-undertow, spring-boot-starter-jetty, spring-boot-starter-tomcat - 특정 임베디드 서블릿 컨테이너 선택
spring-boot-starter-cache - Spring Framework의 캐싱 지원 ###Spring2 및 Spring5를 활성화하는 데 필요한 최소 Java 버전은 무엇입니까?
Spring Boot 2.0에는 Java 8 이상이 필요합니다. Java6 및 Java7은 더 이상 지원되지 않습니다. 권장 읽기:
55. Spring Boot 프로젝트를 만드는 가장 쉬운 방법은 무엇입니까?
Spring Initializr는 Spring Boot 프로젝트를 시작하는 훌륭한 도구입니다.
spring-boot-starter-cache - Spring Framework의 캐싱 지원 ###Spring2 및 Spring5를 활성화하는 데 필요한 최소 Java 버전은 무엇입니까?
Spring Boot 2.0에는 Java 8 이상이 필요합니다. Java6 및 Java7은 더 이상 지원되지 않습니다.
위 그림과 같이 몇 가지 단계를 수행해야 합니다. Spring Initializr에 로그인하고 다음과 같이 선택합니다.
그룹으로 com.in28minutes.springboot를 선택합니다.
studet-services를 선택하고 구성 요소에 대해 다음 종속성을 선택합니다.
WebActuatorDevTools
클릭하여 생성 프로젝트 생성
프로젝트를 Eclipse로 가져옵니다. 파일 가져오기 기존 maven 프로젝트
56. Spring Initializr가 Spring Boot 프로젝트를 생성하는 유일한 방법입니까?
아니요.
Spring Initiatlizr를 사용하면 Spring Boot 프로젝트를 쉽게 생성할 수 있지만 maven 프로젝트를 설정하고 올바른 종속성을 추가하여 프로젝트를 시작할 수도 있습니다. Spring 과정에서는 두 가지 방법을 사용하여 프로젝트를 생성합니다.
첫 번째 방법은 http://start.spring.io입니다.
또 다른 방법은 "기본 웹 응용 프로그램"이라는 프로젝트에서 수동으로 수행하는 것입니다.
maven 프로젝트를 수동으로 설정하는 몇 가지 중요한 단계가 있습니다.
Eclipse에서 File - New Maven Project를 사용하여 종속성을 추가할 새 프로젝트를 생성합니다.
메이븐 플러그인을 추가합니다.
Spring Boot 애플리케이션 클래스를 추가합니다. 자, 준비는 끝났습니다!
57. SpringBoot를 사용하여 내 애플리케이션을 자동으로 다시 로드하는 방법은 무엇입니까?
Spring Boot 개발 도구를 사용합니다.
프로젝트에 Spring Boot 개발 도구를 추가하는 것은 간단합니다.
Spring Boot 프로젝트 pom.xml에 다음 종속성을 추가하십시오.
앱을 다시 시작하면 됩니다.
마찬가지로 페이지를 자동 로드하려면 FiveReload를 살펴보세요.
테스트하는 동안 LiveReload 취약점을 발견했습니다. 테스트 중에 발견했다면 알려주세요.
58. 임베디드 서버란 무엇입니까? 임베디드 서버를 사용해야 하는 이유는 무엇입니까?
가상 머신에 애플리케이션을 배포하는 데 무엇이 필요한지 생각해 보십시오. 1단계: 자바 설치
두 번째 부분: 웹 또는 응용 프로그램 서버 설치(Tomat/Wbesphere/Weblogic 등) 세 번째 부분: 응용 프로그램 war 패키지 배포
이러한 단계를 단순화하려면 어떻게 해야 합니까?
서버를 애플리케이션의 일부로 만드는 방법에 대해 생각해 봅시다.
Java가 설치된 가상 머신만 있으면 되고 여기에 직접 애플리케이션을 배포할 수 있습니다. 멋지지 않습니까?
이 아이디어가 임베디드 서버의 기원입니다.
배포 가능한 응용 프로그램을 만들 때 배포 가능한 서버에 서버(예: tomcat)를 포함합니다.
예를 들어, Spring Boot 애플리케이션의 경우 Embedded Tomcat이 포함된 애플리케이션 jar를 생성할 수 있습니다. 일반 자바 애플리케이션처럼 웹 애플리케이션을 실행할 수 있습니다.
임베디드 서버는 우리의 실행 유닛이 서버의 바이너리(예: tomcat.jar)를 포함하는 곳입니다.
59. Spring Boot에서 공통 JS 코드를 추가하는 방법은 무엇입니까?
소스 폴더 아래에 static이라는 폴더를 만듭니다. 그런 다음 거기에 정적 콘텐츠를 넣을 수 있습니다. 예를 들어 myapp.js의 경로는 resources\static\js\myapp.js입니다.
jsp에서 사용법을 참조할 수 있습니다.
<csriptsrc="/js/myapp.js">
错误:HAL 브라우저에서 승인되지 않은 오류가 발생합니다. 이 리소스에 액세스하려면 전체 인증이 필요합니다.
이 오류를 수정하는 방법은 무엇입니까?
두 가지 방법:
방법 1: 보안 확인 끄기
application.properties
management.security.enabled:거짓
방법 2: 로그에서 비밀번호를 검색하고 요청 헤더에 전달
60. 스프링 데이트란?
Spring Data의 임무는 기본 데이터 저장소의 특수성을 유지하면서 데이터 액세스를 위한 친숙하고 일관된 Spring 기반 프로그래밍 모델을 제공하는 것입니다. 이를 통해 데이터 액세스 기술, 관계형 및 비관계형 데이터베이스, 맵 축소 프레임워크, 클라우드 기반 데이터 서비스를 쉽게 사용할 수 있습니다.
이를 좀 더 쉽게 하기 위해 Spring Data는 기본 데이터 소스에 의해 제한되지 않는 Abstractions 인터페이스를 제공합니다. 다음은 예입니다.
interfaceTodoRepositoryextensCrudRepository<Todo,Long>{
61. 스프링 데이터 REST란?
Spring Data TEST는 Spring Database에 HATEOAS RESTful 리소스를 게시하는 데 사용할 수 있습니다. 다음은 JPA를 사용한 예입니다.
@RepositoryRestResource(collectionResourceRel=“todos”,path=“todos”)
publicinterfaceTodoRepository
extendsPagingAndSortingRepository<Todo,Long>{
너무 많은 코드를 작성하지 않고도 Spring 데이터베이스에 RESTful API를 게시할 수 있습니다. 다음은 TEST 서버의 몇 가지 예입니다.
게시하다
URL:http://localhost:8080/todosUse Header:Content-Type:Type:application/jsonRequest Content
아래와 같이 코드 쇼
응답 내용
응답에는 새로 생성된 리소스의 href가 포함됩니다.
62. path=”users”, collectionResourceRel=”users”는 Spring Data Rest와 어떻게 작동합니까?
path - 이 리소스에 대해 내보낼 경로 세그먼트입니다.
collectionResourceRel - 컬렉션 리소스에 대한 링크를 생성할 때 사용할 rel 값입니다. HATEOAS 링크를 생성할 때 사용됩니다.
63. Spring Boot 애플리케이션이 Java 애플리케이션으로 실행될 때 백그라운드에서 어떤 일이 발생합니까?
Eclipse IDE를 사용하는 경우 Eclipse maven 플러그인은 종속성 또는 클래스 파일에 대한 변경 사항이 추가되는 즉시 컴파일되어 대상 파일에서 준비되도록 합니다! 그 후에는 다른 Java 응용 프로그램과 동일합니다.
자바 애플리케이션을 시작하면 스프링 부트 자동 구성 파일이 마법처럼 활성화됩니다.
Spring Boot 애플리케이션은 웹 애플리케이션을 개발 중임을 감지하면 tomcat을 시작합니다.
64. spring-boot-starter-web에서 tomcat을 부두로 바꿀 수 있습니까?
spring-boot-starter-web에서 기존 종속성을 제거하고 다음을 추가합니다.
65. Spring Boot를 사용하여 WAR 파일을 생성하는 방법은 무엇입니까?
권장 읽기:
다음은 스프링 문서에 대한 직접 링크입니다.
66. Spring Boot를 사용하여 다른 서버에 배포하는 방법은 무엇입니까?
다음 두 단계를 수행해야 합니다.
프로젝트에서 war 파일을 생성합니다.
즐겨 사용하는 서버(websphere 또는 Weblogic 또는 Tomcat 등)에 배포합니다.
1단계: 이 시작 안내서는 다음과 같은 도움이 될 것입니다.
2단계: 서버에 따라 다릅니다.
67. RequestMapping과 GetMapping의 차이점은 무엇입니까?
RequestMapping에는 클래스 속성이 있으며 주석에서 GET, POST, PUT 또는 기타 요청 메서드를 수행할 수 있습니다.
GetMapping은 GET 요청 메소드의 특별한 경우입니다. 명확성을 위해 ResquestMapping을 확장한 것일 뿐입니다.
68. 실제 애플리케이션에서 Spring Data Rest 사용을 권장하지 않는 이유는 무엇입니까?
우리는 Spring Data Rest가 신속한 프로토타이핑에 적합하다고 생각합니다! 큰 응용 프로그램에서는 주의해서 사용하십시오. Spring Data REST를 사용하면 데이터 엔터티를 RESTful 서비스로 직접 게시할 수 있습니다.
RESTful 서버를 설계할 때 모범 사례에 따르면 인터페이스에서 두 가지 중요한 사항을 고려해야 합니다.
당신의 모델 범위. 당신의 고객.
Spring Data REST를 사용하면 이 두 가지 측면에 대해 더 이상 생각할 필요가 없습니다. 엔터티를 TEST 서비스로 게시하기만 하면 됩니다.
그렇기 때문에 Rapid prototyping 위에 Spring Data Rest를 사용하거나 프로젝트의 초기 솔루션으로 사용하는 것이 좋습니다. 이것은 완전한 진화 프로젝트에 대한 좋은 메모가 아닙니다.
69. Spring Initializer에서 프로젝트의 패키지 이름을 변경하는 방법은 무엇입니까?
좋은 소식은 사용자 정의할 수 있다는 것입니다. "정식 버전으로 이동" 링크를 클릭하십시오. 수정하려는 패키지 이름을 구성할 수 있습니다!
70. application.propertierde에서 구성할 수 있는 전체 속성 목록은 어디에서 찾을 수 있습니까?
전체 가이드는 다음과 같습니다.
71. JPA와 Hibernate의 차이점은 무엇입니까?
간단히 말해서
JPA는 사양 또는 인터페이스입니다. Hibernate는 JPA의 구현입니다.
JPA를 사용할 때 javax.persistence 패키지에서 주석과 인터페이스를 사용할 때 최대 절전 모드 가져오기 패키지를 사용할 필요가 없습니다.
우리는 JPA 주석을 사용하는 것이 좋습니다. 왜냐하면 우리는 그것을 구현으로서 Hibernate에 바인딩하지 않기 때문입니다. 나중에(1% 미만의 확률로 알고 있음) 다른 JPA 구현을 사용할 수 있습니다.
72. Spring Boot를 사용하여 인메모리 데이터베이스 H2에 연결된 JPA 애플리케이션을 시작하려면 어떤 종속성이 필요합니까?
Spring Boot 프로젝트에서 다음 종속성이 모두 클래스 경로에 있는지 확인하면 H2 콘솔을 로드할 수 있습니다.
웹 런처
h2
jpa 데이터 인에이블러의 기타 종속성은 다음과 같습니다.
참고 사항:
내부 데이터 메모리는 애플리케이션 실행 중에만 존재합니다. 이것은 프레임워크를 학습하는 효율적인 방법입니다. 실제 응용 프로그램이 원하는 방식이 아닙니다.
"외부 데이터베이스에 어떻게 연결합니까?"라는 질문에서 선택한 데이터베이스에 연결하는 방법을 설명했습니다.
73. 구성 없이 JPA의 기본 구현으로 Hibernate를 선택하는 방법은 무엇입니까?
Spring Boot는 자동 구성되기 때문입니다. 아래는 우리가 추가한 종속성입니다.
org.springframework.boot spring-boot-starter-data-jpaspring-boot-stater-data-jpa에는 Hibernate와 JPA에 대한 전환 종속성이 있습니다.
Spring Boot가 클래스 경로에서 Hibernate를 감지하면 자동으로 기본 JPA 구현으로 구성합니다.
74. 지정된 데이터베이스 연결 정보는 어디에 있습니까? H2에 자동으로 연결하는 것을 어떻게 압니까?
이것이 Spring Boot 자동 구성의 마법입니다.
에서:
Spring Boot 자동 구성은 추가한 jar 종속성을 기반으로 Spring 애플리케이션을 자동으로 구성하려고 시도합니다. 예를 들어 HSQLDBis가 클래스 경로에 있고 데이터베이스 연결 빈이 수동으로 구성되지 않은 경우 메모리 내 데이터베이스를 자동으로 구성할 수 있습니다.
추가 읽기:
75. MSSQL이나 orcale과 같은 외부 데이터베이스에 어떻게 연결합니까?
예를 들어 MySQL을 사용하여 이에 대해 생각해 보겠습니다.
1단계 - pom.xml에 mysql 커넥터 종속성 추가
2단계 - pom.xml에서 H2의 종속성 제거
아니면 적어도 테스트 범위로 만드십시오.
3단계 - MySQL 데이터베이스 설치
4단계 - MySQL 데이터베이스 연결 구성
application.properties 구성
5단계 - 재부팅하면 준비가 완료됩니다!
간단합니다!
76. Spring Boot에서 설정한 기본 H2 데이터베이스의 이름은 무엇입니까? 기본 데이터베이스 이름이 testdb인 이유는 무엇입니까?
application.properties에는 모든 기본값이 나열됩니다.
아래에서 속성 찾기
spring.datasource.name=testdb#데이터 소스의 이름.
H2 내부 저장소 데이터베이스를 사용하는 경우 Spring Boot가 H2 데이터베이스를 설치하는 데 사용할 이름을 정의합니다.
77. H2가 classpath에 없으면 위와 같은 상황이 발생하나요?
다음 오류를 보고합니다
데이터베이스 유형 NONE에 대한 포함된 데이터베이스 드라이버 클래스를 결정할 수 없습니다.
pom.xml에 H2를 추가하고 서버를 다시 시작하십시오.
[외부 링크 이미지 전송 실패, 소스 사이트에 안티 거머리 메커니즘이 있을 수 있으므로 이미지를 저장하고 직접 업로드하는 것이 좋습니다(img-LE3rHXvv-1660643940589) (https://upload-images.jianshu.io/upload_images /28366454-b2e1b47b75680772.png ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]
78. ReadOnly를 트랜잭션 관리로 사용한 예를 들어주실 수 있습니까?
데이터베이스에서 콘텐츠를 읽을 때 사용자 설명이나 트랜잭션의 다른 설명을 읽기 전용 모드로 설정하여 Hebernate가 엔티티의 변경 사항을 다시 확인할 필요가 없도록 하고 싶습니다. 이것은 매우 효율적입니다.
79. Spring Boot 사용자 애플리케이션에 대한 사용자 정의 구성을 게시하는 가장 좋은 방법은 무엇입니까?
@Value의 문제는 애플리케이션을 통해 구성 값을 할당할 수 있다는 것입니다. 더 나은 작업은 중앙 집중식 접근 방식을 취하는 것입니다. @ConfigurationProperties를 사용하여 구성 구성 요소를 정의할 수 있습니다.
application.properties에서 매개변수를 구성할 수 있습니다.
80. 구성 파일에 대한 요구 사항은 무엇입니까?
엔터프라이즈 애플리케이션 개발은 복잡하며 다음과 같은 혼합 환경이 필요합니다.
개발자
품질보증
무대제작
각 환경에서 서로 다른 애플리케이션 구성을 원합니다.
구성 파일은 다양한 환경에서 다양한 애플리케이션 구성을 용이하게 합니다.
Spring 및 Spring Boot는 사용자가 지정할 수 있는 기능을 제공합니다.
다른 구성 파일에서 다른 환경의 구성은 무엇입니까? 주어진 환경에 대한 활성 프로필을 설정합니다.
Spring Boot는 특정 환경에 설정된 활성 프로필을 기반으로 애플리케이션 구성을 선택합니다.
81. Spring Boot를 통해 특정 환경의 설정을 설정하기 위해 설정 파일을 어떻게 사용하나요?
구성 파일은 환경 설정의 핵심이 아닙니다.
다음 예에서는 두 개의 구성 파일을 사용합니다.
devprod
기본 애플리케이션 구성은 application.properties에 있습니다. 다음 예를 살펴보겠습니다. application.properties
dev 파일에 대한 application.properties 속성을 사용자 지정하려고 합니다. application-dev.properties 라는 파일을 만들고
사용자 지정하려는 속성을 재정의해야 합니다.
application-dev.properties
basic.message: DEV의 동적 메시지
프로필을 구체적으로 구성했으면 환경에서 활성 프로필을 설정해야 합니다. 이 작업을 수행하는 방법에는 여러 가지가 있습니다.
VM 매개변수에서 Dspring.profiles.active=prod 사용
application.properties에서 spring.profiles.active=prod 사용
82. Maven으로 Spring Boot 애플리케이션을 어떻게 설정합니까?
다른 라이브러리와 마찬가지로 Maven 프로젝트에 Spring Boot를 포함할 수 있습니다. 그러나 가장 좋은 방법은
spring-boot-starter-parent 프로젝트에서 상속하고 Spring Boot 스타터에 대한 종속성을 선언하는 것입니다. 이렇게 하면 프로젝트에서 Spring Boot의 기본 설정을 재사용할 수 있습니다. spring-boot-starter-parent 프로젝트를 상속하는 것은 매우 간단합니다. pom.xml에 부모 요소를 지정하기만 하면 됩니다.
Maven 중앙 저장소에서 최신 버전의 spring-boot-starter-parent를 찾을 수 있습니다 . 위의 방법은 매우 편리하지만 실제 요구 사항을 반드시 충족하지는 않습니다. 예를 들어, 회사는 표준 BOM에서 빌드하기 위해 모든 프로젝트 종속성을 요구하지만 위의 방법으로는 할 수 없습니다. 이 경우 다음과 같이 참조할 수 있습니다.