Java java지도 시간 Java에서 가장 일반적으로 사용되는 주석을 요약합니다.

Java에서 가장 일반적으로 사용되는 주석을 요약합니다.

May 16, 2017 am 09:42 AM
boot spring 일반적인 주석 주석

본 글에서는 주로 스프링부트에서 사용되는 Annotation을 요약해서 소개하고 있으니 필요한 친구들은

@RestController, @RequestMapping Annotation

을 참고하면 된다. 4.0 중요 새로운 개선 사항은 @RestController 주석으로, 은 @Controller 주석에서 를 상속합니다. 버전 4.0 이전에는 Spring MVC 구성 요소는 모두 @Controller를 사용하여 현재 클래스를 Controllerservlet으로 식별했습니다. 이 기능을 사용하면 @Controller를 사용하지 않고 전용 @RestController를 사용하여 REST 서비스를 개발할 수 있습니다.

RESTful 웹 서비스를 구현하면 응답은 항상 응답 본문을 통해 전송됩니다. 개발을 단순화하기 위해 Spring 4.0은 컨트롤러의 특수 버전을 제공합니다. @RestController 구현의 정의를 살펴보겠습니다.

@Target(value=TYPE)  
 @Retention(value=RUNTIME)  
 @Documented  
 @Controller  
 @ResponseBody  
public @interface RestController  
@Target(value=TYPE) 
 @Retention(value=RUNTIME) 
 @Documented 
 @Controller 
 @ResponseBody 
public @interface RestController
로그인 후 복사

@RequestMapping 주석은 라우팅 정보를 제공합니다. 이는 "/" 경로에서 오는 모든 HTTP 요청이 home 메서드에 매핑되어야 함을 Spring에 알려줍니다. @RestController 주석은 Spring에게 결과를 string 형식으로 렌더링하고 호출자에게 직접 반환하도록 지시합니다.

참고: @RestController 및 @RequestMapping 주석은 Spring MVC 주석입니다(Spring Boot의 특정 부분이 아님)

@EnableAutoConfiguration 주석

두 번째 클래스 수준 주석은 @EnableAutoConfiguration입니다. 이 주석은 추가된 jar 종속성을 기반으로 Spring을 구성하려는 방법을 추측하도록 Spring Boot에 지시합니다. spring-boot-starter-web은 Tomcat과 Spring MVC를 추가하므로 자동 구성은 사용자가 웹 애플리케이션을 개발하고 있다고 가정하고 이에 따라 Spring을 설정합니다. 스타터 POM 및 자동 구성: 자동 구성을 설계하는 목적은 "스타터 POM"을 더 잘 활용하는 것이지만 두 개념은 직접적인 관련이 없습니다. 스타터 POM 외부에서 jar 종속성을 자유롭게 선택할 수 있으며 Spring Boot는 여전히 애플리케이션을 자동으로 구성하기 위해 최선을 다합니다.

@Configuration 클래스에 @EnableAutoConfiguration 또는 @SpringBootApplication 주석을 추가하여 자동 구성을 선택할 수 있습니다.

참고: @EnableAutoConfiguration 주석만 추가하면 됩니다. 기본 @Configuration 클래스에 추가하는 것이 좋습니다.

원하지 않는 특정 자동 구성 클래스가 적용된 경우 @EnableAutoConfiguration 주석의 제외 속성 을 사용하여 해당 클래스를 비활성화할 수 있습니다.

<pre name="code" class="java">import org.springframework.boot.autoconfigure.*; 
import org.springframework.boot.autoconfigure.jdbc.*; 
import org.springframework.context.annotation.*; 
@Configuration 
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) 
public class MyConfiguration { 
} 
<pre name="code" class="java">import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
@Configuration
로그인 후 복사

Spring Boot는 Java 기반 구성을 옹호합니다. XML 소스를 사용하여 SpringApplication.run()을 호출할 수 있지만 일반적으로 @Configuration 클래스를 기본 소스로 사용하는 것이 좋습니다. 일반적으로 main 메서드를 정의하는 클래스는 기본 @Configuration의 좋은 후보이기도 합니다. 모든 @Configuration을 단일 클래스에 넣을 필요는 없습니다. @Import 주석을 사용하여 다른 구성 클래스를 가져올 수 있습니다. 또는 @ComponentScan 주석을 사용하여 @Configuration 클래스를 포함한 모든 Spring 구성 요소를 자동으로 수집할 수 있습니다.

XML 기반 구성을 꼭 사용해야 하는 경우에도 @Configuration 클래스로 시작하는 것이 좋습니다. 추가 @ImportResource 주석을 사용하여 XML구성 파일을 로드할 수 있습니다. <… @ComponentScan은 메인 클래스에 주석을 답니다. 이러한 주석은 매우 자주 함께 사용되므로(특히 위의 모범 사례를 따르는 경우) Spring Boot는 편리한 @SpringBootApplication 대안을 제공합니다.

@SpringBootApplication 주석은 기본 속성과 함께 @Configuration, @EnableAutoConfiguration 및 @ComponentScan을 사용하는 것과 동일합니다.

@ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)}) 
@ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)})
@SpringBootApplication
로그인 후 복사

Spring Boot는 기본적으로 JSR-303을 사용하여(클래스 경로에 있는 경우) 외부 구성을 확인하려고 시도합니다. @ConfigurationProperties 클래스에 JSR-303 javax.validation

constraints

주석을 쉽게 추가할 수 있습니다.

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); 
  } 
} 
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);
  }
}
로그인 후 복사

는 이 메서드의 반환 결과가 HTTP 응답 본문에 직접 기록된다는 의미입니다. 일반적으로 비동기적으로 데이터를 얻을 때 사용됩니다. @RequestMapping을 사용한 후 반환 값은 일반적으로

@responsebody를 추가한 후 반환 결과가 점프 경로로 구문 분석되지 않습니다. HTTP 응답 본문에 직접 기록됩니다. 예를 들어

json

데이터를 비동기적으로 가져오고, @responsebody를 추가하면 json 데이터가 직접 반환됩니다.


@Component:

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法我会用上这个注解

@AutoWired

byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构
函数进行标注,完成自动装配的工作。

当加上(required=false)时,就算找不到bean也不报错。

@RequestParam:

用在方法的参数前面。

@RequestParam String a =request.getParameter("a")。 
@RequestParam String a =request.getParameter("a")。
로그인 후 복사

@PathVariable:

路径变量。

RequestMapping("user/get/mac/{macAddress}") 
public String getByMacAddress(@PathVariable String macAddress){ 
//do something;  
} 
RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//do something;
}
로그인 후 복사

参数与大括号里的名字一样要相同。

以上注解的示范

/** 
 * 用户进行评论及对评论进行管理的 Controller 类; 
 */ 
@Controller 
@RequestMapping("/msgCenter") 
public class MyCommentController extends BaseController { 
  @Autowired 
  CommentService commentService; 
  @Autowired 
  OperatorService operatorService; 
  /** 
   * 添加活动评论; 
   * 
   * @param applyId 活动 ID; 
   * @param content 评论内容; 
   * @return 
   */ 
  @ResponseBody 
  @RequestMapping("/addComment") 
  public Map<String, Object> addComment(@RequestParam("applyId") Integer applyId, @RequestParam("content") String content) { 
    .... 
    return result; 
  } 
} 
/**
 * 用户进行评论及对评论进行管理的 Controller 类;
 */
@Controller
@RequestMapping("/msgCenter")
public class MyCommentController extends BaseController {
  @Autowired
  CommentService commentService;
  @Autowired
  OperatorService operatorService;
  /**
   * 添加活动评论;
   *
   * @param applyId 活动 ID;
   * @param content 评论内容;
   * @return
   */
  @ResponseBody
  @RequestMapping("/addComment")
  public Map<String, Object> addComment(@RequestParam("applyId") Integer applyId, @RequestParam("content") String content) {
    ....
    return result;
  }
}
@RequestMapping("/list/{applyId}") 
  public String list(@PathVariable Long applyId, HttpServletRequest request, ModelMap modelMap) { 
} 
 @RequestMapping("/list/{applyId}")
  public String list(@PathVariable Long applyId, HttpServletRequest request, ModelMap modelMap) {
}
로그인 후 복사

全局处理异常的:

@ControllerAdvice:

包含@Component。可以被扫描到。

统一处理异常。

@ExceptionHandler(Exception.class):

用在方法上面表示遇到这个异常就执行以下方法。

/** 
 * 全局异常处理 
 */ 
@ControllerAdvice 
class GlobalDefaultExceptionHandler { 
  public static final String DEFAULT_ERROR_VIEW = "error"; 
  @ExceptionHandler({TypeMismatchException.class,NumberFormatException.class}) 
  public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception { 
    ModelAndView mav = new ModelAndView(); 
    mav.addObject("error","参数类型错误"); 
    mav.addObject("exception", e); 
    mav.addObject("url", RequestUtils.getCompleteRequestUrl(req)); 
    mav.addObject("timestamp", new Date()); 
    mav.setViewName(DEFAULT_ERROR_VIEW); 
    return mav; 
  }} 
/**
 * 全局异常处理
 */
@ControllerAdvice
class GlobalDefaultExceptionHandler {
  public static final String DEFAULT_ERROR_VIEW = "error";
  @ExceptionHandler({TypeMismatchException.class,NumberFormatException.class})
  public ModelAndView formatErrorHandler(HttpServletRequest req, Exception e) throws Exception {
    ModelAndView mav = new ModelAndView();
    mav.addObject("error","参数类型错误");
    mav.addObject("exception", e);
    mav.addObject("url", RequestUtils.getCompleteRequestUrl(req));
    mav.addObject("timestamp", new Date());
    mav.setViewName(DEFAULT_ERROR_VIEW);
    return mav;
  }}
로그인 후 복사

通过@value注解来读取application.properties里面的配置

# face++ key 
face_api_key = R9Z3Vxc7ZcxfewgVrjOyrvu1d-qR**** 
face_api_secret =D9WUQGCYLvOCIdsbX35uTH******** 
# face++ key
face_api_key = R9Z3Vxc7ZcxfewgVrjOyrvu1d-qR****
face_api_secret =D9WUQGCYLvOCIdsbX35uTH********
@Value("${face_api_key}") 
  private String API_KEY; 
  @Value("${face_api_secret}") 
  private String API_SECRET; 
 @Value("${face_api_key}")
  private String API_KEY;
  @Value("${face_api_secret}")
  private String API_SECRET;所以一般常用的配置都是配置在application.properties文件的
로그인 후 복사

【相关推荐】

1. 特别推荐“php程序员工具箱”V0.1版本下载

2. Java免费视频教程

3. JAVA教程手册

위 내용은 Java에서 가장 일반적으로 사용되는 주석을 요약합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows ISO 파일이 너무 큼 BootCamp 오류 [수정됨] Windows ISO 파일이 너무 큼 BootCamp 오류 [수정됨] Feb 19, 2024 pm 12:30 PM

Mac 컴퓨터에서 BootCampAssistant를 사용할 때 "Windows ISO 파일이 너무 큽니다"라는 오류 메시지가 표시되는 경우 ISO 파일 크기가 BootCampAssistant에서 지원하는 제한을 초과했기 때문일 수 있습니다. 이 문제에 대한 해결책은 다른 도구를 사용하여 ISO 파일 크기를 압축하여 BootCamp Assistant에서 처리할 수 있도록 하는 것입니다. BootCampAssistant는 Mac 컴퓨터에 Windows 운영 체제를 설치하고 실행하기 위해 Apple에서 제공하는 편리한 도구입니다. 사용자가 듀얼 부팅 시스템을 설정하여 시작 시 MacOS 또는 Wind를 사용하도록 쉽게 선택할 수 있습니다.

Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Spring Boot가 OpenAI를 만났을 때 새로운 프로그래밍 패러다임 Feb 01, 2024 pm 09:18 PM

2023년에는 AI 기술이 화두가 되면서 다양한 산업, 특히 프로그래밍 분야에 큰 영향을 미치고 있다. 사람들은 AI 기술의 중요성을 점점 더 인식하고 있으며 Spring 커뮤니티도 예외는 아닙니다. GenAI(일반 인공 지능) 기술이 지속적으로 발전함에 따라 AI 기능을 갖춘 애플리케이션 생성을 단순화하는 것이 중요하고 시급해졌습니다. 이러한 배경에서 AI 기능 애플리케이션 개발 프로세스를 단순화하고 간단하고 직관적이며 불필요한 복잡성을 피하는 것을 목표로 하는 "SpringAI"가 등장했습니다. 'SpringAI'를 통해 개발자는 AI 기능이 포함된 애플리케이션을 더욱 쉽게 구축할 수 있어 사용 및 운영이 더욱 쉬워진다.

Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Spring Boot 및 Spring AI를 사용하여 생성 인공 지능 애플리케이션 구축 Apr 28, 2024 am 11:46 AM

업계 리더인 Spring+AI는 강력하고 유연한 API와 고급 기능을 통해 다양한 산업에 선도적인 솔루션을 제공합니다. 이 주제에서는 다양한 분야의 Spring+AI 적용 사례를 살펴보겠습니다. 각 사례에서는 Spring+AI가 어떻게 특정 요구 사항을 충족하고 목표를 달성하며 이러한 LESSONSLEARNED를 더 넓은 범위의 애플리케이션으로 확장하는지 보여줍니다. 이 주제가 여러분이 Spring+AI의 무한한 가능성을 더 깊이 이해하고 활용하는 데 영감을 줄 수 있기를 바랍니다. Spring 프레임워크는 소프트웨어 개발 분야에서 20년 이상의 역사를 가지고 있으며, Spring Boot 1.0 버전이 출시된 지 10년이 되었습니다. 이제 봄이 왔다는 것에 대해 누구도 이의를 제기할 수 없습니다.

Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Spring 프로그래밍 방식 트랜잭션의 구현 방법은 무엇입니까? Jan 08, 2024 am 10:23 AM

Spring 프로그래밍 방식 트랜잭션을 구현하는 방법: 1. TransactionCallback 및 TransactionCallbackWithoutResult를 사용합니다. 3. Transactional 주석을 사용합니다. 4. @Transactional과 함께 TransactionTemplate을 사용합니다.

JUnit 프레임워크의 테스트 메소드에 주석은 어떻게 사용됩니까? JUnit 프레임워크의 테스트 메소드에 주석은 어떻게 사용됩니까? May 06, 2024 pm 05:33 PM

JUnit 프레임워크의 주석은 테스트 메서드를 선언하고 구성하는 데 사용됩니다. 주요 주석에는 @Test(테스트 메서드 선언), @Before(테스트 메서드가 실행되기 전에 실행되는 메서드), @After(테스트 메서드 후에 실행되는 메서드)가 포함됩니다. 실행됨), @BeforeClass(모든 테스트 메소드가 실행되기 전에 실행되는 메소드), @AfterClass(모든 테스트 메소드가 실행된 후에 실행되는 메소드) 이러한 주석은 테스트 코드를 구성하고 단순화하며 테스트 코드의 신뢰성을 향상시키는 데 도움이 됩니다. 명확한 의도와 구성을 제공하여 가독성과 유지 관리성을 제공합니다.

PHP 코드 문서의 왕: PHPDoc 고급 가이드 PHP 코드 문서의 왕: PHPDoc 고급 가이드 Mar 02, 2024 am 08:43 AM

소개: PHPDoc은 이해하기 쉽고 유익한 문서를 생성하는 PHP 코드의 주석 표준입니다. PHPDoc에서는 특정 주석 태그를 사용하여 개발자가 함수, 클래스, 메서드 및 기타 코드 요소에 대한 중요한 세부 정보를 제공할 수 있습니다. 이 고급 가이드에서는 PHPDoc을 심층적으로 살펴보고 그 기능을 시연하고 효과적인 문서화 전략을 제공합니다. 구문 및 태그: PHPDoc 주석은 이중 슬래시(//) 또는 여러 줄 주석(/**/)으로 시작합니다. 다음은 몇 가지 일반적인 주석 태그입니다. @param: 함수 또는 메서드의 매개 변수를 정의합니다. @return: 함수 또는 메서드의 반환 값을 지정합니다. @throws: 함수나 메서드에서 발생할 수 있는 예외를 설명합니다. @var: 클래스의 속성이나 인스턴스를 정의합니다.

Spring에서 트랜잭션 격리 수준을 설정하는 방법 Spring에서 트랜잭션 격리 수준을 설정하는 방법 Jan 26, 2024 pm 05:38 PM

Spring에서 트랜잭션 격리 수준을 설정하는 방법: 1. @Transactional 주석을 사용합니다. 2. Spring 구성 파일에서 설정합니다. 3. PlatformTransactionManager를 사용합니다. 4. Java 구성 클래스에서 설정합니다. 자세한 소개: 1. @Transactional 주석을 사용하고, 트랜잭션 관리가 필요한 클래스나 메소드에 @Transactional 주석을 추가하고, 속성에서 격리 수준을 설정합니다. 2. Spring 구성 파일에서 등.

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까? Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 어떻게 제어합니까? May 06, 2024 pm 10:09 PM

Jackson 라이브러리의 주석은 JSON 직렬화 및 역직렬화를 제어합니다. 직렬화: @JsonIgnore: 속성 무시 @JsonProperty: 이름 지정 @JsonGetter: get 메서드 사용 @JsonSetter: set 메서드 사용 역직렬화: @JsonIgnoreProperties: @JsonProperty 속성 무시: 이름 지정 @JsonCreator: 생성자 사용 @JsonDeserialize: 사용자 정의 논리

See all articles