springboot 에서 자주 사용 되 는 주해 총화

springboot
1、@SpringBootApplication
이 주 해 는 Spring Boot 의 가장 핵심 적 인 주해 로 Spring Boot 의 주요 유형 에 사용 되 며,표 지 는 Spring Boot 응용 으로 Spring Boot 를 여 는 각종 능력 입 니 다.실제로 이 주 해 는@Configuration,@EnableAutoConfiguration,@Componentscan 세 개의 주 해 를 조합 한 것 입 니 다.이러한 주 해 는 일반적으로 함께 사용 되 기 때문에 Spring Boot 는 통 일 된 주 해 를 제공 합 니 다@SpringBootApplication.
2、@EnableAutoConfiguration
Spring Boot 에서 자동 으로 주 해 를 설정 할 수 있 도록 합 니 다.이 주 해 를 열 면 Spring Boot 는 현재 클래스 경로 의 가방 이나 클래스 에 따라 Spring Bean 을 설정 할 수 있 습 니 다.
예 를 들 어 현재 클래스 경로 에 Mybatis 라 는 JAR 패키지 가 있 습 니 다.Mybatis AutoConfiguration 주 해 는 관련 매개 변수 에 따라 Mybatis 의 각 Spring Bean 을 설정 할 수 있 습 니 다.
@EnableAutoConfiguration 실현 의 관건 은 AutoConfiguration ImportSelector 를 도입 하 는 것 입 니 다.그 핵심 논 리 는 selectImports 방법 입 니 다.논 리 는 대체적으로 다음 과 같 습 니 다.
●설정 파일 META-INF/spring.factories 에서 사용 할 수 있 는 모든 자동 설정 클래스 를 불 러 옵 니 다.
●무 거 운 것 을 제거 하고 exclude 와 excludeName 속성 이 지 니 고 있 는 클래스 를 제거 합 니 다.
●여과,조건(@conditional)을 만족 시 키 는 자동 설정 류 를 되 돌려 줍 니 다.
3、@Configuration
설정 클래스 를 정의 하 는 데 사용 되 며,이 클래스 는 Bean 설정 의 정보 원 으로 전통 적 인 xml 설정 파일 에 해당 하 며,일반적으로 주 클래스 에 추 가 됩 니 다.제3자 라 이브 러 리 에 xml 파일 이 필요 하 다 면@Configuration 류 를 프로젝트 의 설정 주 클래스 로 사용 하 는 것 을 권장 합 니 다.@ImportResource 주 해 를 사용 하여 xml 프로필 을 불 러 올 수 있 습 니 다.
4、@ComponentScan
구성 요소 스 캔.spring Boot 를 Configuration 클래스 로 스 캔 하고 프로그램 컨 텍스트 에 추가 합 니 다.
@Componentscan 주 해 는 기본적으로@Controller,@Service,@Repository,@Component 주해 의 종 류 를 spring 용기 에 설치 합 니 다.
5、@Repository
데이터 액세스 구성 요소,즉 DAO 구성 요 소 를 표시 하 는 데 사 용 됩 니 다.
@Repository 주 해 를 사용 하면 DAO 나 reposcories 가 이상 번역 을 제공 하 는 지 확인 할 수 있 습 니 다.이 주해 수식 의 DAO 나 reposcories 류 는 ComponentScan 에 의 해 발견 되 고 설정 되 며 XML 설정 항목 을 제공 할 필요 가 없습니다.
6、@Service
일반적으로 service 층 을 수식 하 는 구성 요소 입 니 다.
7、@RestController
제어 층 구성 요소(예 를 들 어 struts 의 action)를 표시 하 는 데 사용 되 며,이것 은 컨트롤 러 bean 이 며,함수 의 반환 값 을 HTTP 응답 체 에 직접 입력 하 는 REST 스타일 의 컨트롤 러 입 니 다.@Controller 와@Response Body 의 집합 입 니 다.
8、@ResponseBody
이 방법의 반환 결 과 를 HTTP response body 에 직접 기록 합 니 다.
일반적으로 비동기 적 으로 데 이 터 를 가 져 올 때 사용 되 며,@RequestMapping 을 사용 한 후 반환 값 은 보통 점프 경로 로 해석 되 며,@responsebody 를 더 한 후 반환 결 과 는 점프 경로 로 해석 되 지 않 고 HTTP responsebody 에 직접 기 록 됩 니 다.예 를 들 어 비동기 로 json 데 이 터 를 가 져 오고@responsebody 를 더 하면 json 데 이 터 를 직접 되 돌려 줍 니 다.
9、@Component
구성 요소 가 분류 하기 어 려 울 때 이 주 해 를 사용 하여 표시 할 수 있 습 니 다.
10、@Bean
XML 에 해당 하 는 것 은 클래스 가 아 닌 방법의 위 에 놓 여 있 습 니 다.하나의 bean 을 만 들 고 spring 관리 에 맡 기 겠 다 는 뜻 입 니 다.
11、@AutoWired
기본 값 은 by Type 방식 입 니 다.설 정 된 Bean 을 가 져 와 속성,방법의 조립 을 완성 하면 클래스 구성원 변수,방법 및 구조 함 수 를 표시 하여 자동 조립 작업 을 완성 할 수 있 습 니 다.
(required=false)를 더 하면 bean 을 찾 지 못 하 더 라 도 잘못 보고 하지 않 습 니 다.
12、@Qualifier
같은 유형의 빈 이 여러 개 있 을 때@Qualifier("name")로 지정 할 수 있 습 니 다.@Autowired 와 함께 사용
13、@Resource(name="name",type="type")
괄호 안에 내용 이 없 으 면 기본 byName 입 니 다.이름 으로 찾 을 수 없고 형식 으로 찾 을 수 없습니다.@Autowired 와 비슷 한 일 을 합 니 다.
14、@RequestMapping
RequestMapping 은 요청 주소 맵 을 처리 하 는 주석 입 니 다.경로 정 보 를 제공 하고 URL 이 Controller 에 있 는 구체 적 인 함수 의 맵 을 책임 지 며 클래스 나 방법 에 사용 할 수 있 습 니 다.클래스 에 사용 할 때 클래스 의 모든 응답 요청 을 표시 하 는 방법 은 이 주 소 를 부모 경로 로 합 니 다.
15、@RequestParam
방법의 매개 변수 앞 에 사용 합 니 다.예:

@RequestParam String a =request.getParameter("a")。
16、@PathVariable
경로 변수.매개 변 수 는 괄호 안에 있 는 이름과 같 아야 합 니 다.예:

RequestMapping("user/get/mac/{macAddress}")
 
public String getById(@PathVariable String id){
 
  ....
 
}
17、@Profiles
Spring Profiles 는 격 리 프로그램 설정 방식 을 제공 하고 이 설정 을 특정한 환경 에서 만 적용 할 수 있 도록 합 니 다.
@Component 나@Configuration 은@Profile 에 표시 되 어 불 러 올 시 기 를 제한 합 니 다.

@Configuration
 
@Profile("prod")
 
public class ProductionConfiguration {
 
    // ...
 
}
18、@ConfigurationProperties
Spring Boot 는 주석 을 사용 하여 사용자 정의 properties 파일 을 실체 bean 에 표시 할 수 있 습 니 다.예 를 들 어 config.properties 파일 입 니 다.

@Data
 
@ConfigurationProperties("rocketmq.consumer")
 
public class RocketMQConsumerProperties extends RocketMQProperties {
 
    private boolean enabled = true;
 
    private String consumerGroup;
 
    private MessageModel messageModel = MessageModel.CLUSTERING;
 
    private ConsumeFromWhere consumeFromWhere = ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET;
 
    private int consumeThreadMin = 20;
 
    private int consumeThreadMax = 64;
 
    private int consumeConcurrentlyMaxSpan = 2000;
 
    private int pullThresholdForQueue = 1000;
 
    private int pullInterval = 0;
 
    private int consumeMessageBatchMaxSize = 1;
 
    private int pullBatchSize = 32;
 
}
19、@Conditional
이것 은 Spring 4.0 에 추 가 된 새로운 주석 입 니 다.Spring Bean 이나 Configuration 설정 파일 을 표시 하고 지정 한 조건 을 만족 시 켜 야 설정 을 시작 합 니 다.
관련 설명:( 
1)、@ConditionalOnBean
        조합 하 다 @Conditional 설명,용기 에 지정 한 Bean 이 있어 야 설정 이 열 립 니 다.
2)、@ConditionalOnMissingBean
        조합 하 다 @Conditional 주해 @ConditionalOnBean 주 해 는 반대로 용기 에 지정 한 Bean 이 없어 야 설정 을 엽 니 다.
3)、@ConditionalOnClass
        조합 하 다 @Conditional 설명,용기 에 지정 한 Class 가 있어 야 설정 이 열 립 니 다.
4)、@ConditionalOnMissingClass
        조합 하 다 @Conditional 주해 @ConditionalOnMissingClass 주 해 는 반대로 용기 에 지정 한 Class 가 없어 야 설정 을 엽 니 다.
5、@ConditionalOnWebApplication
        조합 하 다 @Conditional 설명,현재 항목 유형 은 WEB 항목 이 어야 설정 을 시작 합 니 다.
현재 항목 은 다음 과 같은 세 가지 유형 이 있 습 니 다. 

enum Type {
 
    /**
     * Any web application will match.
     */
    ANY,
 
    /**
     * Only servlet-based web application will match.
     */
    SERVLET,
 
    /**
     * Only reactive-based web application will match.
     */
    REACTIVE
 
}
6)、@ConditionalOnNotWebApplication
        @conditional 주 해 를 조합 합 니 다.@conditional OnWebApplication 주해 와 달리 현재 프로젝트 유형 은 WEB 프로젝트 가 아니 어서 설정 을 시작 합 니 다.
7)、@ConditionalOnProperty
        @Conditional 주 해 를 조합 하여 지정 한 속성 이 지정 한 값 이 있 을 때 만 설정 을 시작 합 니 다.
8)、@ConditionalOnExpression
        @conditional 주 해 를 조합 하여 SpEL 표현 식 이 true 일 때 만 설정 을 시작 합 니 다.
9)、@ConditionalOnJava
        @Conditional 주 해 를 조합 하여 실행 중인 자바 JVM 이 지정 한 버 전 범위 에 있 을 때 만 설정 을 시작 합 니 다.
10)、@ConditionalOnResource
        @Conditional 주 해 를 조합 하면 클래스 경로 에 지정 한 자원 이 있어 야 설정 을 시작 합 니 다.
11)、@ConditionalOnJndi
        @Conditional 주 해 를 조합 하여 지정 한 JNDI 가 존재 할 때 만 설정 을 엽 니 다.
12)、@ConditionalOnCloudPlatform
        @Conditional 주 해 를 조합 하여 지정 한 클 라 우 드 플랫폼 이 활성화 되 었 을 때 설정 을 시작 합 니 다.
13)、@ConditionalOnSingleCandidate
        @conditional 주 해 를 조합 합 니 다.지정 한 class 가 용기 에 빈 이 하나 있 거나 여러 개 있 지만 첫 번 째 로 선택 할 때 만 설정 을 엽 니 다.
20、@ConfigurationProperties
추가 설정 불 러 오기(예:.properties 파일)  @Configuration  주해 류  @Bean  주해 방법 위 에.
21、@EnableConfigurationProperties
일반적으로 협조 해 야 한다.  @ConfigurationProperties  주해 사용  @ConfigurationProperties  설명 설정 Bean 의 지원.
22、@AutoConfigureAfter
자동 설정 클래스 에 사용 하면 이 자동 설정 클래스 는 다른 자동 설정 클래스 가 설 정 된 후에 사용 해 야 한 다 는 것 을 표시 합 니 다.
Mybatis 의 자동 설정 클래스 와 같이 데이터 원본 자동 설정 클래스 뒤에 있어 야 합 니 다.

@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class MybatisAutoConfiguration {
23、@AutoConfigureBefore
이것  @AutoConfigureAfter  주 해 는 반대로 이 자동 설정 클래스 가 다른 자동 설정 클래스 설정 전에 필요 하 다 는 것 을 나타 낸다.
24、@Import
이것 은 Spring 3.0 에 추 가 된 새로운 주해 입 니 다.하나 이상 의 주 해 를 가 져 오 는 데 사 용 됩 니 다.  @Configuration  주해 수식 류 는 Spring Boot 에 많이 활용 된다.
25、@ImportResource
이것 은 Spring 3.0 에 추 가 된 새로운 주석 입 니 다.하나 이상 의 Spring 프로필 을 가 져 오 는 데 사 용 됩 니 다.이것 은 Spring Boot 호 환 오래된 프로젝트 에 매우 유용 합 니 다.자바 Config 형식 으로 설정 할 수 없 기 때문에 이 주석 으로 만 가 져 올 수 있 습 니 다.
여기 서 spring boot 에서 자주 사용 되 는 주해 총화 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 spring boot 주해 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기