>  기사  >  Java  >  spring 및 springboot 주석에 대한 간략한 분석

spring 및 springboot 주석에 대한 간략한 분석

不言
不言앞으로
2018-10-15 16:03:292243검색

이 글은 spring과 springboot에 대한 간략한 분석을 담고 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

@ConfigurationProperties

리소스 파일의 콘텐츠를 개체에 바인딩하는 것이 매우 편리합니다

@Value("${app.name}")

간단한 값 삽입

@Import

import를 통해 springIOC 컨테이너에 인스턴스 추가

/**
 * 定义一个圆形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Circular {
}
/**
 * 定义一个正方形
 *
 * @author zhangqh
 * @date 2018年5月1日
 */
public class Square {
}

다음과 같이 MainConfig 주석 구성에 @Import 주석을 추가합니다.

@Import({Square.class,Circular.class})
@Configuration
public class MainConfig
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
String[] beanNames = applicationContext2.getBeanDefinitionNames();
for(int i=0;i<beanNames.length;i++){
    System.out.println("bean名称为==="+beanNames[i]);
}

실행 결과:

bean名称为===mainConfig
bean名称为===com.zhang.bean.Square
bean名称为===com.zhang.bean.Circular

@RequestMapping

이 주석은 클래스 및 메서드에 사용할 수 있습니다. 클래스에 사용되는 은 상위 경로를 나타냅니다. 예를 들어 클래스가 데모이고 메소드가 /demo1이면 액세스 경로는 데모/demo1입니다.

이 주석에는 6개의 속성이 있습니다.
params: 특정 매개변수가 요청에 포함됩니다. 메소드가 처리되기 전에는 값이 YES입니다.
헤더: 이 메서드가 요청을 처리하려면 지정된 요청에 지정된 특정 헤더 값이 포함되어야 합니다.
value: 요청의 실제 주소를 지정합니다. 지정된 주소는 URI 템플릿 모드일 수 있습니다.
method: 요청의 메서드 유형(GET, POST, PUT, DELETE 등)을 지정합니다.
consumes: 제출 콘텐츠 유형(Content)을 지정합니다. -Type) 요청 처리용(예: application/json, text/html)
produces: 반환할 콘텐츠 유형을 지정합니다. 요청 헤더의 (Accept) 유형에 지정된 유형이 포함된 경우에만

을 반환합니다. @PathVariable

해당 경로의 변수는 매개변수 이전에 사용되며 경로의 변수 이름은 매개변수 이름

RequestMapping("demo/demo1/{name}")public String say(@PathVariable String name){
}

@RequestParam

과 동일한 효과를 가집니다. 다음 코드

문자열 이름 =request.getParameter("이름").

@RequestBody

은 메서드 매개변수가 HTTP 요청 본문에 바인딩되어 있으며 프런트 엔드가 이를 양식으로 제출할 수 없으며 json으로 제출해야 함을 의미합니다.

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以绑定自定义的对象类型
}

@ResponseBody

은 출력이 json 형식의 데이터임을 의미합니다.

@ModelAttribute

1. 매개변수에 적용하면 클라이언트가 전달한 매개변수가 지정된 개체에 이름으로 주입되고 이 개체는 View 레이어에서 쉽게 사용할 수 있도록 자동으로 ModelMap에 추가됩니다.

2. 메소드에 적용하면 @RequestMapping으로 표시된 각 메소드 전에 실행됩니다. 반환 값이 있으면 자동으로 ModelMap에 추가됩니다.

@Bean

은 <와 동일합니다. 클래스 대신 메소드 위에 배치되는 XML의 ;bean>은 bean을 생성하고 관리를 위해 이를 스프링에 넘겨주는 것을 의미합니다.

@Qualifier

동일한 유형의 Bean이 여러 개 있는 경우 @Qualifier("name")를 사용하여 지정할 수 있습니다. @Autowired

와 함께 사용되는 @Autowired

는 Spring의 org.springframework.beans.factory.annotation 패키지에 속하며 클래스 속성, 생성자 및 메서드에 대한 값을 주입하는 데 사용할 수 있습니다

@Resource

Spring에 속하지 않지만 java.annotation 패키지의 JSR-250에서 오는 Annotation입니다. 이 Annotation을 사용하여 대상 Bean에 대한 Collaborator Bean을 지정합니다.

@Resource는 @Autowired와 동일하며 필드 또는 속성의 setter 메서드에 주석을 달 수 있습니다.

참고:

@Autowired 주석은 기본적으로 유형별로 어셈블됩니다. 컨테이너에 동일한 유형의 Bean이 여러 개 포함되어 있는 경우 컨테이너를 시작할 때 지정된 유형의 Bean을 찾을 수 없다는 예외가 보고됩니다. @Qualified 주석으로 제한하려면 주입된 Bean 이름을 지정하세요.

@Resource name 속성이 지정되지 않고 기본 이름에 따라 종속 개체를 찾을 수 없는 경우 @Resource 주석은 유형별로 어셈블리로 대체됩니다. 그러나 name 속성이 지정되면 이름으로만 조합할 수 있습니다.

@Autowired 주석은 어셈블리 중에 쉽게 예외를 발생시킬 수 있습니다. 특히 여러 빈 유형이 어셈블리되는 경우 해결책은 자격을 위해 @Qualitied를 추가하는 것입니다.

Component 클래스 주석

@Component: 일반적인 Spring Bean 클래스를 표준으로 합니다.

@Repository: DAO 구성 요소 클래스를 표시합니다.
@Service: 비즈니스 로직 구성 요소 클래스를 표시합니다.
@Controller: 컨트롤러 구성 요소 클래스를 표시합니다.

@Component는 @Repository, @Service 및 @Controller를 대체할 수 있습니다. 이 세 가지 주석에는 @Component라는 주석이 달려 있기 때문입니다. 주석이 달린 Java 클래스는 Bean 인스턴스로 처리됩니다. Bean 인스턴스의 이름은 기본적으로 Bean 클래스의 첫 번째 문자인 소문자로 지정되며 다른 부분은 변경되지 않습니다. @Service는 Bean 이름을 사용자 정의할 수도 있지만 고유해야 합니다!

@SpringBootApplication

에는 @Configuration, @EnableAutoConfiguration, @ComponentScan

이 포함되어 있으며 일반적으로 시작 클래스에서 사용됩니다.

@ComponentScan

구성요소 스캔. @Component @Controller @Service 및 기타 주석이 있는 클래스를 스캔하면 해당 클래스가 Bean으로 등록됩니다.

@Configuration

은 이 클래스가 Bean 구성의 정보 소스이며 XML의 3c9fdce8078791299ca92e41bddc2b8fa6748f3712e7c0e1f60ffca24b3db7b0에 해당하며 일반적으로 기본 클래스에 추가된다는 점을 지적합니다.

@EnableAutoConfiguration

Spring Boot는 일반적으로 메인 클래스에 추가되는 애플리케이션에서 선언한 종속성을 기반으로 Spring 프레임워크를 자동으로 구성합니다.

@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。
任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration
@Profile("prod")public class ProductionConfiguration {    // ...}

위 내용은 spring 및 springboot 주석에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제