누구나 알아야 할 스프링 부트 기본 주석

게시 됨: 2021-12-13

Java Spring Framework는 JVM(Java Virtual Machine)에서 실행되는 프로덕션 수준의 독립 실행형 애플리케이션을 만드는 데 사용되는 오픈 소스 및 엔터프라이즈 수준 프레임워크입니다. 이를 위해 Java Spring Boot는 Spring Framework를 사용하여 웹 애플리케이션 및 마이크로 서비스 개발을 단순화하고 가속화하는 도구입니다. 이를 위해 Java Spring Boot는 자동 구성, 독창적인 구성 접근 방식, 독립 실행형 애플리케이션 생성 가능성의 세 가지 핵심 기능을 활용합니다. 이러한 핵심 기능을 결합하면 개발자가 최소한의 구성으로 Spring 기반 애플리케이션을 설정할 수 있는 도구가 제공됩니다.

주석 이전에는 Spring Framework 동작이 대부분 XML 구성으로 제어되었습니다. 그러나 Spring Boot 주석은 Spring Framework의 동작을 구성하는 방법을 극적으로 변경했습니다.

이 기사에서는 Spring Framework의 몇 가지 기본 주석을 살펴보겠습니다.

목차

스프링 부트 주석이란 무엇입니까?

Spring Boot 주석은 메타데이터의 한 형태입니다. 그것들은 개발 중인 애플리케이션의 일부가 아니지만 프로그램에 대한 보충 데이터를 제공합니다. 주석은 주석이 달린 코드의 작동에 직접적인 영향을 미치지 않으며 컴파일된 프로그램의 동작을 변경하지도 않습니다.

Spring 애플리케이션에는 상당한 수준의 구성이 필요합니다. Spring Boot는 Spring Framework를 기반으로 하는 독창적인 프레임워크입니다. 구성 노력과 시작하는 데 필요한 상용구를 최소화합니다. Spring Boot 주석은 Spring Framework에 대한 제어권을 확보하고, 프레임워크를 지시하고, 필요할 때 기본값을 재정의하는 열쇠입니다. 이러한 주석은 처음부터 동등한 기능을 구축하는 것보다 사용하기 쉽고 빠릅니다.

누구나 알아야 할 스프링 부트 주석

Spring Boot는 Java, Groovy 및 Kotlin을 작동하지만 중요한 Spring Boot 주석에 대해 논의하면서 Java에 중점을 둘 것입니다.

1. @구성

@Configuration은 Bean을 정의하는 클래스에서 사용됩니다. XML 구성 파일의 아날로그는 빈 정의의 소스로 사용되는 클래스 수준 주석입니다. @Configuration 주석이 달린 Java 클래스는 그 자체로 구성이며 종속성을 구성하고 인스턴스화하는 메서드가 있습니다.

예시:

@구성

일반 버스

{

@BeanBus 엔진()

{

리턴 new Bus();

}

}

2. @빈

XML <bean> 태그의 대안인 @Bean 주석은 메서드 수준에서 Spring 컨테이너가 관리할 빈을 생성한다는 것을 나타내기 위해 메서드 수준에서 사용됩니다. 이 주석은 @Configuration과 함께 작동하여 Spring Bean을 생성합니다. @Configuration에는 종속성을 구성하고 인스턴스화하는 메서드가 있으며 이러한 메서드는 @Bean에 의해 주석이 지정됩니다.

예시:

@콩

Public BeanExample BeanExample()

{

새 BeanExample() 반환,

}

3. @컴포넌트스캔

@ComponentScan 주석은 빈 패키지를 스캔하는 데 사용됩니다. @Configuration 주석과 함께 사용되어 주석이 달린 구성 요소를 검색해야 하는 패키지를 Spring에 알립니다.

예시:

@ComponentScan(basePackages = "com.xyz")

@구성

공용 클래스 ScanComponent

{

//…

}

4. @컴포넌트

@Component 주석은 Spring 구성 요소를 나타내기 위해 클래스에서 사용됩니다. 오토스캔 시 클래스를 Spring Bean으로 변환해주는 클래스 레벨 어노테이션이다.

예시:

@요소

공개 수업 교사

{

......

}

5. @EnableAutoConfiguration

@EnableAutoConfiguration 주석은 일반적으로 기본 애플리케이션 클래스에 배치되며 기본 검색 패키지를 암시적으로 정의합니다. 클래스 경로 설정, 다양한 속성 설정 및 기타 빈을 기반으로 @EnableAutoConfiguration은 Spring Boot에 빈 추가를 시작하도록 지시합니다.

6. @SpringBootApplication

@SpringBootApplication 주석은 @Configuration, @EnableAutoConfiguration 및 @ComponentScan의 세 가지 주석을 추가합니다. Spring Boot 프로젝트 설정 시 애플리케이션 클래스에서 사용되며, @SpringBootApplication 어노테이션이 붙은 클래스는 기본 패키지에 배치된다. @SpringBootApplication은 구성 요소 스캔을 수행하지만 하위 패키지만 수행합니다.

7. @리포지토리

@Repository 주석은 데이터베이스에 직접 액세스하는 Java 클래스에서 사용됩니다. 데이터 액세스 개체 또는 저장소의 역할을 수행하는 클래스에 대한 마커로 작동합니다.

예시:

@저장소

공개 클래스 TestRepository

{

공개 무효 삭제()

{

// 지속성 코드

}

}

8. @서비스

비즈니스 로직 실행, 계산 수행 또는 외부 API 호출과 같은 서비스를 수행하는 Java 클래스를 표시하는 클래스 수준 주석입니다. @Service 주석은 서비스 계층에서 사용하기 위한 @Component 주석의 특별한 형식입니다.

예시:

@서비스

공개 클래스 TestService

{

공공 무효 서비스1()

{

// 비즈니스 코드

}

}

9. @Autowired

이 주석은 암시적으로 개체 종속성을 주입하고 필드, 생성자 및 설정자 메서드에 적용됩니다. @Autowired가 필드에 사용되고 필드 값이 속성 이름을 사용하여 전달되면 Spring은 전달된 값으로 필드를 자동으로 할당합니다.

10. @컨트롤러

@Controller 어노테이션은 애플리케이션에서 컨트롤러 역할을 하는 Java 클래스에서 사용됩니다. 클래스 경로에서 구성 요소 클래스를 자동으로 감지하고 이에 대한 빈 정의의 자동 등록도 허용합니다. @Controller 주석은 일반적으로 @RequestMapping과 함께 사용되며 @Controller로 주석이 달린 Java 클래스는 여러 요청 매핑을 처리할 수 있습니다.

예시:

@제어 장치

@RequestMapping("자동차")

공개 클래스 CarsController

{

@RequestMapping(값= “/{이름}”, 메서드= RequestMethod.GET)

공개 직원 getCarsByName()

{

반환 자동차 템플릿;

}

}

11. @RequestMapping

@RequestMapping 주석은 메서드와 클래스 수준 모두에서 사용됩니다. 웹 요청을 지정된 처리기 메서드 및 처리기 클래스에 매핑하는 역할을 합니다. @RequestMapping이 메소드에 사용될 때 핸들러 메소드가 실행될 URL을 제공합니다. 반대로 클래스 수준에서 주석을 사용하는 경우 컨트롤러가 사용될 기본 URL을 생성합니다. 따라서 각 처리기 메서드에는 각각의 요청 매핑이 있는 반면 클래스 수준 요청 매핑은 동일하게 유지됩니다.

예시:

@제어 장치

공개 클래스 꽃 컨트롤러

{

@RequestMapping("/빨간색/꽃")

public String getAllFlowers(모델 모델)

{

//애플리케이션 코드

반환 "꽃 목록";

}

12. @예선

@Qualifier는 종속성 주입 프로세스에 대해 더 많은 제어가 필요할 때 @Autowired와 함께 사용됩니다. @Qualifier 주석은 메소드 매개변수 또는 개별 생성자 인수에 지정할 수 있습니다. 일반적으로 개발자가 동일한 유형의 빈을 두 개 이상 만들 때 혼동이 발생하지만 그 중 하나만 속성과 연결해야 합니다. @Qualifier 주석은 이러한 혼란을 제거하는 데 유용합니다.

예시:

@요소

공개 클래스 BeanB1은 BeanInterface {를 구현합니다.

//

}

@요소

공개 클래스 BeanB2는 BeanInterface {를 구현합니다.

//

}

위의 예에서 BeanInterface는 2개의 BeanB1과 BeanB2에 의해 구현됩니다. 이제 BeanA가 이 인터페이스를 자동 연결하면 Spring은 두 가지 구현 중 어느 것을 주입해야 하는지 알지 못할 것입니다. @Qualifier 주석을 사용하여 이 문제를 해결할 수 있습니다. 이 어노테이션이 있으면 Spring은 어떤 빈을 autowire할 것인지 알게 될 것입니다.

@요소

공개 클래스 BeanA {

@Autowired

@Qualifier("beanB2")

개인 BeanInterface 종속성;

}

13. @값

@Value 주석은 필드, 메소드 매개변수 및 생성자 매개변수 수준에서 사용됩니다. 속성을 초기화하는 데 사용할 매개변수 또는 필드의 기본값 표현식을 나타냅니다.

14. @게으른

@Lazy 주석은 구성 요소 클래스에 적용됩니다. 시작 시 모든 autowired 종속성이 기본적으로 생성되고 구성됩니다. 그러나 개발자가 빈을 느리게 초기화하고 싶다면 @Lazy 어노테이션을 사용할 수 있다. 따라서 빈은 요청 시에만 생성되고 초기화됩니다. @Lazy 주석은 @Configuration 클래스에서도 사용할 수 있습니다. 이는 해당 @Configuration의 모든 @Bean 메서드가 느리게 시작됨을 의미합니다.

이 Java Spring Boot 주석 목록이 완전하지는 않지만 모든 개발자 또는 Java 애호가가 알아야 하는 가장 기본적인 주석을 다룹니다. 결국 Spring Boot는 Spring 기반 애플리케이션의 개발을 단순화했으며 알 가치가 있습니다.

리버풀 존 무어스 대학교 데이터 과학 석사

데이터 과학자 지망생이라면 최고로부터 배울 수 있는 기회가 있습니다. upGrad는 데이터 과학 기술과 지식을 연마하려는 실무 전문가를 위해 특별히 고안된 리버풀 존 무어스 대학교(Liverpool John Moores University)와 협력하여 온라인 데이터 과학 석사를 제공합니다.

다음은 프로그램 하이라이트입니다.

  • LJMU에서 석사 학위 및 IIT Bangalore에서 Executive PGP
  • 라이브 세션, 사례 연구 및 프로젝트로 가득 찬 500시간 이상의 학습
  • 14개 이상의 도구 및 소프트웨어에 대한 포괄적인 범위
  • 세 가지 독특한 전문 분야
  • 360도 전담 경력 지원
  • 동료 학습 및 산업 네트워킹

upGrad의 몰입형 산업 관련 학습 프로그램은 전 세계적으로 500,000명 이상의 실무 전문가에게 영향을 미쳤으며 고등 교육 기술 산업에서 계속해서 높은 기준을 설정하고 있습니다. 따라서 지금 지원하고 85개국에 퍼져 있는 40,000명 이상의 글로벌 학습자 기반에 합류하십시오!

세계 최고의 대학에서 온라인으로 데이터 과학 과정배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

Spring Boot 스타터의 목적은 무엇입니까?

Spring Boot 스타터는 클래스 경로에 jar 추가를 허용하는 종속성 설명자입니다. 모든 스타터에는 Spring Boot 프레임워크에서 다음과 같은 명명 패턴이 있습니다. spring-boot-starter-*, 여기서 *는 특정 애플리케이션 유형을 나타냅니다.

@SpringBootApplication과 @EnableAutoConfiguration의 차이점은 무엇입니까?

@EnableAutoConfiguration의 기본 작업은 Spring Boot 애플리케이션의 자동 구성 기능을 활성화하는 것입니다. 반대로 @SpringBootApplication은 컴포넌트 스캐닝을 위한 @ComponentScan, Spring 프레임워크의 Java 기반 구성을 위한 @Configuration, Spring Boot 애플리케이션에서 자동 구성을 허용하는 @EnableAutoConfiguration의 세 가지 주석을 결합합니다.

SpringBootApplication 없이 Spring 부트를 실행할 수 있습니까?

Spring Boot 애플리케이션을 생성하기 위해 @SpringBootApplication을 반드시 사용해야 하는 것은 아닙니다. @EnableAutoConfiguration 및 @Configuration을 개별적으로 계속 사용할 수 있습니다.