SpringBoot 주석 대전

8441 단어 spring
1.주석(annotations)목록
@SpringBootApplication:@Componentscan,@Configuration,@EnableAutoConfiguration 주석 이 포함 되 어 있 습 니 다.그 중에서@Componentscan 은 spring Boot 를 Configuration 클래스 로 스 캔 하고 프로그램 컨 텍스트 에 추가 합 니 다.
@Configuration 은 spring 의 XML 프로필 과 같 습 니 다.자바 코드 를 사용 하면 형식 안전 을 검사 할 수 있 습 니 다.
@EnableAutoConfiguration 자동 설정.
@Componentscan 구성 요 소 를 스 캔 하면 빈 을 자동 으로 발견 하고 조립 할 수 있 습 니 다.
@Component 는 CommandLine Runner 와 함께 사용 할 수 있 으 며 프로그램 이 시 작 된 후에 기본 작업 을 수행 할 수 있 습 니 다.
@RestController 주 해 는@Controller 와@Response Body 의 집합 으로 컨트롤 러 bean 이 며 함수 의 반환 값 을 HTTP 응답 체 에 직접 입력 하 는 REST 스타일 의 컨트롤 러 입 니 다.
@Autowired 자동 가 져 오기.
@PathVariable 에서 인 자 를 가 져 옵 니 다.
@JSonBackReference 는 외부 체인 문 제 를 해결 합 니 다.
@Repository RestResource public 는 spring-boot-starter-data-rest 와 함께 사용 합 니 다.
2.주석(annotations)상세 설명
@SpringBootApplication:spring boot 가 프로그램 에 필요 한 설정 을 자동 으로 하도록 합 니 다.이 설정 은@Configuration,@EnableAutoConfiguration 과@Componentscan 세 개의 설정 과 같 습 니 다.
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

@Response Body:이 방법의 반환 결 과 를 HTTP response body 에 직접 기록 합 니 다.보통 비동기 로 데 이 터 를 가 져 올 때 사용 되 며 RESTful api 를 구축 하 는 데 사 용 됩 니 다.@RequestMapping 을 사용 한 후 반환 값 은 보통 점프 경로 로 해석 되 며,@responsebody 를 더 한 후 되 돌아 오 는 결 과 는 점프 경로 로 해석 되 지 않 고 HTTP response body 에 직접 기 록 됩 니 다.
예 를 들 어 비동기 로 json 데 이 터 를 가 져 오고@responsebody 를 더 하면 json 데 이 터 를 직접 되 돌려 줍 니 다.이 주 해 는 일반적으로@RequestMapping 과 함께 사용 합 니 다.예제 코드:
@RequestMapping(“/test”)
@ResponseBody 
public String test(){
return”ok”;
}

@Controller:컨트롤 러 클래스 를 정의 하 는 데 사 용 됩 니 다.spring 프로젝트 에서 컨트롤 러 가 사용자 가 보 낸 URL 요청 을 해당 하 는 서비스 인터페이스(service 층)로 전송 합 니 다.일반적으로 이 주 해 는 클래스 에 있 습 니 다.일반적인 방법 은 주해@RequestMapping 에 맞 춰 야 합 니 다.예제 코드:
@Controller 
@RequestMapping(“/demoInfo”)
publicclass DemoController {
@Autowired 
private DemoInfoService demoInfoService;
 
@RequestMapping("/hello")
public String hello(Map<String,Object> map){
 System.out.println("DemoController.hello()");
 map.put("hello","from TemplateController.helloHtml");
 //   hello.html  hello.ftl        .
 return"/hello";
}
}

@RestController:제어 층 구성 요소(예 를 들 어 struts 의 action),@ResponseBody 와@Controller 의 집합 을 표시 합 니 다.추천:Spring MVC 상용 주해,몇 개 할 줄 알 아?
예제 코드:
package com.kfit.demo.web;
 
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
 
@RestController 
@RequestMapping(“/demoInfo2”)
publicclass DemoController2 {
 
@RequestMapping("/test")
public String test(){
 return"ok";
}
}

@RequestMapping:경로 정 보 를 제공 하고 URL 이 Controller 에 있 는 구체 적 인 함수 의 맵 을 책임 집 니 다.
@EnableAutoConfiguration:Spring Boot 자동 설정(auto-configuration):추 가 된 jar 의존 에 따라 Spring 응용 프로그램 을 자동 으로 설정 하려 고 합 니 다.예 를 들 어,classpath 에 HSQLDB 가 존재 하고 데이터베이스 연결 beans 를 수 동 으로 설정 하지 않 으 면 메모리 형(in-memory)데이터 베 이 스 를 자동 으로 설정 합 니 다.
@EnableAutoConfiguration 또는@SpringBootApplication 주 해 를@Configuration 클래스 에 추가 하여 자동 설정 을 선택 할 수 있 습 니 다.원 하지 않 는 특정 자동 설정 클래스 가 적 용 된 것 을 발견 하면@EnableAutoConfiguration 주해 의 제거 속성 을 사용 하여 사용 하지 않 을 수 있 습 니 다.
@Componentscan:이 종 류 를 스 캔 구성 요 소 를 자동 으로 발견 하 는 것 을 표시 합 니 다.개인 적 인 이 해 는@Component,@Controller,@Service 등 주석 이 있 는 클래스 를 스 캔 하고 Bean 으로 등록 하면@Configuration 류 를 포함 한 모든 Spring 구성 요 소 를 자동 으로 수집 할 수 있다 는 것 과 같다.
저 희 는@Componentscan 주 해 를 자주 사용 하여 beans 를 검색 하고@Autowired 주 해 를 결합 하여 가 져 옵 니 다.@Configuration 류 를 포함 한 모든 Spring 구성 요 소 를 자동 으로 수집 할 수 있 습 니 다.저 희 는@Componentscan 주 해 를 자주 사용 하여 beans 를 검색 하고@Autowired 주 해 를 결합 하여 가 져 옵 니 다.설정 이 없 으 면 Spring Boot 는 시작 클래스 가 있 는 가방 과 하위 가방 에 사 용 된@Service,@Repository 등 주 해 를 사용 한 클래스 를 스 캔 합 니 다.
@Configuration:전통 적 인 xml 프로필 에 해당 합 니 다.만약 에 제3자 라 이브 러 리 에 xml 파일 을 사용 해 야 한다 면@Configuration 류 를 프로젝트 의 설정 메 인 클래스 로 사용 하 는 것 을 권장 합 니 다.@ImportResource 주 해 를 사용 하여 xml 프로필 을 불 러 올 수 있 습 니 다.추천:Spring Boot 의 가장 핵심 적 인 3 개의 주석 상세 설명.
@import:다른 설정 클래스 를 가 져 오 는 데 사 용 됩 니 다.추천:Spring Boot 의 가장 핵심 적 인 25 개의 주해!
@ImportResource:xml 프로필 을 불 러 오 는 데 사 용 됩 니 다.
@Autowired:의존 하 는 bean 자동 가 져 오기
@Service:보통 service 층 을 수식 하 는 구성 요소 입 니 다.
@Repository:@Repository 주 해 를 사용 하면 DAO 나 reposcories 가 이상 번역 을 제공 하 는 지 확인 할 수 있 습 니 다.이 주 해 를 수식 하 는 DAO 나 reposcories 류 는 ComponetScan 에 의 해 발견 되 고 설정 되 며 XML 설정 항목 을 제공 할 필요 가 없습니다.
@Bean:@Bean 레이 블 방법 으로 XML 에 설 정 된 bean 과 같 습 니 다.
@Value:Spring boot application.properties 설정 의 속성 값 을 입력 합 니 다.예제 코드:
@Value(value = “#{message}”)
private String message;

@Inject:기본@Autowired 와 같 습 니 다.required 속성 이 없습니다.
@Component:구성 요소 가 분류 하기 어 려 울 때 이 주 해 를 사용 하여 표시 할 수 있 습 니 다.
@Bean:XML 에 해당 하 는 것 은 클래스 가 아 닌 방법 위 에 놓 습 니 다.bean 을 만 들 고 spring 관리 에 맡 기 겠 다 는 뜻 입 니 다.
@AutoWired:의존 하 는 bean 을 자동 으로 가 져 옵 니 다.by Type 방식.설 정 된 Bean 을 가 져 와 속성,방법의 조립 을 완성 하면 클래스 구성원 변수,방법 및 구조 함 수 를 표시 하여 자동 조립 작업 을 완성 할 수 있 습 니 다.(required=false)를 더 하면 bean 을 찾 지 못 하 더 라 도 잘못 보고 하지 않 습 니 다.
@Qualifier:같은 유형의 Bean 이 여러 개 있 을 때@Qualifier("name")로 지정 할 수 있 습 니 다.@Autowired 와 함께 사용 합 니 다.@Qualifier 한정 설명 자 는 이름 에 따라 주입 할 수 있 는 것 을 제외 하고 더 세밀 한 통 제 를 할 수 있 습 니 다.후보 자 를 어떻게 선택 하 는 지 구체 적 인 사용 방식 은 다음 과 같 습 니 다.
@Autowired 
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;

@Resource(name="name",type="type"):괄호 안에 내용 이 없 으 면 기본 byName 입 니 다.@Autowired 와 비슷 한 일 을 합 니 다.
3.JPA 주해
@Entity:@Table(name="):이것 은 실체 클래스 임 을 나타 낸다.일반적으로 jpa 라 는 두 주 해 는 일반적으로 한 조각 에 사용 되 지만 표 이름과 실체 클래스 가 같다 면@Table 은 생략 할 수 있 습 니 다.
@Mapped SuperClass:부모 클래스 를 확인 하 는 entity 에 사용 합 니 다.부 류 의 속성 자 류 는 계승 할 수 있 습 니 다.
@NoRepository Bean:보통 부모 클래스 의 reposcory 로 사 용 됩 니 다.이 주석 이 있 으 면 spring 은 이 reposcory 를 예화 하지 않 습 니 다.
@Column:필드 이름 이 열 이름과 같 으 면 생략 할 수 있 습 니 다.
@Id:이 속성 을 주 키 로 표시 합 니 다.
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator = “repair_seq"):메 인 키 생 성 정책 은 sequence(Auto,IDENTITY,native 등 이 고 Auto 는 여러 데이터베이스 에서 전환 할 수 있 음 을 표시 합 니 다)를 표시 합 니 다.sequence 의 이름 은 repair 입 니 다.seq。
@SequenceGeneretor(name = “repair_seq”, sequenceName = “seq_repair",allocationSize=1):name 은 sequence 의 이름 입 니 다.sequenceName 은 데이터베이스 의 sequence 이름 이 고 두 이름 이 일치 할 수 있 습 니 다.
@Transient:이 속성 은 데이터베이스 시트 에 있 는 필드 의 맵 이 아니 라 ORM 프레임 워 크 는 이 속성 을 무시 합 니 다.데이터베이스 시트 의 필드 맵 이 아 닌 속성 이 있다 면@Transient 로 표시 해 야 합 니 다.그렇지 않 으 면 ORM 프레임 워 크 는 기본적으로@Basic 으로 주석 을 달 아야 합 니 다.@Basic(fetch=FetchType.LAZY):실체 속성 을 지정 할 수 있 는 로 딩 방식 을 표시 합 니 다.
@JSonIgnore:json 직렬 화 시 자바 bean 의 일부 속성 을 무시 하고 직렬 화 와 반 직렬 화 에 영향 을 줍 니 다.
@JoinColumn(name="loginId"):일대일:이 표 에서 다른 표 의 외 키 를 가리 키 고 있 습 니 다.한 쌍 다:다른 시 계 는 이 시계의 외 키 를 가리킨다.
@OneToOne,@OneToMany,@ManyToOne:hibenate 설정 파일 의 1 대 1,1 대 1,1 대 1 에 대응 합 니 다.
4.springMVC 관련 주해
@RequestMapping:@RequestMapping("/path")은 이 컨트롤 러 가 모든"/path"의 UR L 요청 을 처리 하 는 것 을 표시 합 니 다.RequestMapping 은 요청 주소 맵 을 처리 하 는 주석 으로 클래스 나 방법 에 사용 할 수 있 습 니 다.
클래스 에 사용 할 때 클래스 의 모든 응답 요청 을 표시 하 는 방법 은 이 주 소 를 부모 경로 로 합 니 다.이 주 해 는 6 개의 속성 이 있 습 니 다:
params:지정 한 request 에 일부 매개 변수 값 을 포함해 야 이 방법 을 처리 할 수 있 습 니 다.headers:지정 한 request 에는 지정 한 header 값 이 포함 되 어 있어 야 요청 을 처리 할 수 있 습 니 다.value:요청 한 실제 주 소 를 지정 합 니 다.지정 한 주 소 는 URI Template 모드 method 일 수 있 습 니 다.요청 한 method 형식,GET,POST,PUT,DELETE 등 consumes:요청 한 제출 내용 형식(Content-Type)을 지정 합 니 다.예 를 들 어 application/json,text/html;produces:되 돌아 오 는 콘 텐 츠 형식 을 지정 합 니 다.request 요청 헤더 에 있 는(Accept)형식 에 만 이 지정 한 형식 이 포함 되 어야 되 돌아 갑 니 다.
@RequestParam:방법의 인자 앞 에 사용 합 니 다.@RequestParam String a =request.getParameter(“a”)。
@PathVariable:경로 변수 입 니 다....와 같다
RequestMapping(“user/get/mac/{macAddress}”)
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}

매개 변 수 는 대괄호 안의 이름과 같 아야 한다.
5.전역 이상 처리
@Controller Advice:@Component 를 포함 합 니 다.스 캔 이 가능 합 니 다.이상 처리 통일.
@ExceptionHandler(Exception.class):방법 에 이 이상 이 발생 하면 다음 과 같은 방법 을 실행 합 니 다.

좋은 웹페이지 즐겨찾기