Heim Java javaLernprogramm Fassen Sie einige der am häufigsten verwendeten Anmerkungen in Java zusammen

Fassen Sie einige der am häufigsten verwendeten Anmerkungen in Java zusammen

May 16, 2017 am 09:42 AM
boot spring Allgemeine Anmerkungen 注解

Dieser Artikel stellt hauptsächlich eine Zusammenfassung der in Spring Boot verwendeten allgemeinen Annotationen vor. Freunde, die sie benötigen, können sich auf die

@RestController- und @RequestMapping-Annotationen

beziehen 4.0 Wichtig Eine neue Verbesserung ist die @RestController-Annotation, die von der @Controller-Annotation erbt. Vor Version 4.0 verwendeten alle Spring MVC-Komponenten @Controller, um die aktuelle Klasse als ControllerServlet zu identifizieren. Mit dieser Funktion können wir REST-Dienste entwickeln, ohne @Controller, sondern einen dedizierten @RestController zu verwenden.

Wenn Sie einen RESTful-Webdienst implementieren, wird die Antwort immer über den Antworttext gesendet. Um die Entwicklung zu vereinfachen, bietet Spring 4.0 eine spezielle Version des Controllers. Werfen wir einen Blick auf die Definition der @RestController-Implementierung:

@Target(value=TYPE)  
 @Retention(value=RUNTIME)  
 @Documented  
 @Controller  
 @ResponseBody  
public @interface RestController  
@Target(value=TYPE) 
 @Retention(value=RUNTIME) 
 @Documented 
 @Controller 
 @ResponseBody 
public @interface RestController
Nach dem Login kopieren
Die Annotation @RequestMapping liefert

Routing-Informationen. Es teilt Spring mit, dass jede HTTP-Anfrage, die vom Pfad „/“ kommt, der Home-Methode zugeordnet werden soll. Die @RestController-Annotation weist Spring an, das Ergebnis in Form von string zu rendern und direkt an den Aufrufer zurückzugeben.

Hinweis: @RestController- und @RequestMapping-Annotationen sind Spring MVC-Annotationen (sie sind keine spezifischen Teile von Spring Boot)

@EnableAutoConfiguration-Annotation

Die zweite Annotation auf Klassenebene ist @EnableAutoConfiguration. Diese Annotation weist Spring Boot an, anhand der hinzugefügten JAR-Abhängigkeiten zu erraten, wie Sie Spring konfigurieren möchten. Da spring-boot-starter-web Tomcat und Spring MVC hinzufügt, geht die automatische Konfiguration davon aus, dass Sie eine Webanwendung entwickeln und richtet Spring entsprechend ein. Starter-POMs und automatische Konfiguration: Der Zweck des Entwurfs der automatischen Konfiguration besteht darin, „Starter-POMs“ besser zu nutzen, die beiden Konzepte stehen jedoch nicht in direktem Zusammenhang. Es steht Ihnen frei, JAR-Abhängigkeiten außerhalb der Starter-POMs zu wählen, und Spring Boot wird dennoch sein Bestes tun, um Ihre Anwendung automatisch zu konfigurieren.

Sie können die automatische Konfiguration auswählen, indem Sie die Annotation @EnableAutoConfiguration oder @SpringBootApplication zu einer @Configuration-Klasse hinzufügen.


Hinweis: Sie müssen nur eine @EnableAutoConfiguration-Annotation hinzufügen. Wir empfehlen, es zur Hauptklasse @Configuration hinzuzufügen.

Wenn Sie feststellen, dass bestimmte Autokonfigurationsklassen angewendet werden, die Sie nicht möchten, können Sie sie mithilfe des Ausschlussattributs

der Annotation @EnableAutoConfiguration deaktivieren.

<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
Nach dem Login kopieren
Spring Boot befürwortet eine Java-basierte Konfiguration. Obwohl Sie zum Aufrufen von SpringApplication.run() eine

XML-Quelle verwenden können, empfehlen wir im Allgemeinen, dass Sie eine @Configuration-Klasse als primäre Quelle verwenden. Klassen, die im Allgemeinen eine main-Methode definieren, sind auch ein guter Kandidat für die Haupt-@Configuration. Sie müssen nicht alle @Configuration in einer einzigen Klasse zusammenfassen. Die Annotation @Import kann zum Importieren anderer Konfigurationsklassen verwendet werden. Alternativ können Sie die Annotation @ComponentScan verwenden, um alle Spring-Komponenten, einschließlich @Configuration-Klassen, automatisch zu erfassen.

Wenn Sie unbedingt eine XML-basierte Konfiguration verwenden müssen, empfehlen wir Ihnen, dennoch mit einer @Configuration-Klasse zu beginnen. Sie können XML

Konfigurationsdateien mithilfe der zusätzlichen Annotation @ImportResource laden.

Die @Configuration-Annotation dieser Klasse entspricht der Konfiguration von Beans in XML. Die Verwendung der @Bean-Annotationsmethode entspricht der Konfiguration von Beans in XML.

@ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)}) 
@ComponentScan(basePackages = "com.hyxt",includeFilters = {@ComponentScan.Filter(Aspect.class)})
@SpringBootApplication
Nach dem Login kopieren
Viele Spring Boot-Entwickler verwenden immer @Configuration. @EnableAutoConfiguration und @ComponentScan kommentieren ihre Hauptklassen. Da diese Anmerkungen so häufig zusammen verwendet werden (insbesondere wenn Sie die oben genannten Best Practices befolgen), bietet Spring Boot eine praktische @SpringBootApplication-Alternative.

Die Annotation @SpringBootApplication entspricht der Verwendung von @Configuration , @EnableAutoConfiguration und @ComponentScan mit Standardeigenschaften.

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);
  }
}
Nach dem Login kopieren
Spring Boot versucht, die externe Konfiguration zu überprüfen und verwendet dabei standardmäßig JSR-303 (sofern es sich im Klassenpfad befindet). Sie können ganz einfach die Annotation JSR-303 javax.validation

constraints zu Ihrer @ConfigurationProperties-Klasse hinzufügen:

@Component 
@ConfigurationProperties(prefix="connection") 
public class ConnectionSettings { 
@NotNull 
private InetAddress remoteAddress; 
// ... getters and setters  
} 
@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
@NotNull
private InetAddress remoteAddress;
// ... getters and setters
}
@Profiles
Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。
[java] view plain copy print?在CODE上查看代码片派生到我的代码片
@Configuration 
@Profile("production") 
public class ProductionConfiguration { 
// ...  
} 
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}@ResponseBody
Nach dem Login kopieren
gibt an, dass das Rückgabeergebnis dieser Methode direkt in den HTTP-Antworttext geschrieben wird

wird im Allgemeinen beim asynchronen Abrufen von Daten verwendet. Nach der Verwendung von @RequestMapping wird der Rückgabewert normalerweise als Sprungpfad analysiert. Nach dem Hinzufügen von

@responsebody wird das Rückgabeergebnis nicht als Sprung analysiert Der Pfad wird direkt in den HTTP-Antworttext geschrieben. Beispielsweise ruft

asynchron
json-Daten ab, und nach dem Hinzufügen von @responsebody werden die JSON-Daten direkt zurückgegeben.

@Component:

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

@AutoWired

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

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

@RequestParam:

用在方法的参数前面。

@RequestParam String a =request.getParameter("a")。 
@RequestParam String a =request.getParameter("a")。
Nach dem Login kopieren

@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;
}
Nach dem Login kopieren

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

以上注解的示范

/** 
 * 用户进行评论及对评论进行管理的 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) {
}
Nach dem Login kopieren

全局处理异常的:

@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;
  }}
Nach dem Login kopieren

通过@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文件的
Nach dem Login kopieren

【相关推荐】

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

2. Java免费视频教程

3. JAVA教程手册

Das obige ist der detaillierte Inhalt vonFassen Sie einige der am häufigsten verwendeten Anmerkungen in Java zusammen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Windows-ISO-Datei zu groß BootCamp-Fehler [Behoben] Windows-ISO-Datei zu groß BootCamp-Fehler [Behoben] Feb 19, 2024 pm 12:30 PM

Wenn Sie bei der Verwendung von BootCampAssistant auf einem Mac-Computer die Fehlermeldung „Die Windows-ISO-Datei ist zu groß“ erhalten, kann dies daran liegen, dass die ISO-Dateigröße den von BootCampAssistant unterstützten Grenzwert überschreitet. Die Lösung für dieses Problem besteht darin, andere Tools zum Komprimieren der ISO-Dateigröße zu verwenden, um sicherzustellen, dass sie im BootCamp-Assistenten verarbeitet werden kann. BootCampAssistant ist ein praktisches Tool von Apple zum Installieren und Ausführen des Windows-Betriebssystems auf Mac-Computern. Es hilft Benutzern beim Einrichten eines Dual-Boot-Systems, sodass sie beim Start problemlos zwischen MacOS und Wind wählen können

Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Ein neues Programmierparadigma, wenn Spring Boot auf OpenAI trifft Feb 01, 2024 pm 09:18 PM

Im Jahr 2023 ist die KI-Technologie zu einem heißen Thema geworden und hat enorme Auswirkungen auf verschiedene Branchen, insbesondere im Programmierbereich. Die Bedeutung der KI-Technologie wird den Menschen zunehmend bewusst, und die Spring-Community bildet da keine Ausnahme. Mit der kontinuierlichen Weiterentwicklung der GenAI-Technologie (General Artificial Intelligence) ist es entscheidend und dringend geworden, die Erstellung von Anwendungen mit KI-Funktionen zu vereinfachen. Vor diesem Hintergrund entstand „SpringAI“ mit dem Ziel, den Prozess der Entwicklung von KI-Funktionsanwendungen zu vereinfachen, ihn einfach und intuitiv zu gestalten und unnötige Komplexität zu vermeiden. Durch „SpringAI“ können Entwickler einfacher Anwendungen mit KI-Funktionen erstellen, wodurch diese einfacher zu verwenden und zu bedienen sind.

Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Verwenden Sie Spring Boot und Spring AI, um generative Anwendungen für künstliche Intelligenz zu erstellen Apr 28, 2024 am 11:46 AM

Als Branchenführer bietet Spring+AI durch seine leistungsstarke, flexible API und erweiterte Funktionen führende Lösungen für verschiedene Branchen. In diesem Thema werden wir uns mit den Anwendungsbeispielen von Spring+AI in verschiedenen Bereichen befassen. Jeder Fall wird zeigen, wie Spring+AI spezifische Anforderungen erfüllt, Ziele erreicht und diese LESSONSLEARNED auf ein breiteres Anwendungsspektrum ausdehnt. Ich hoffe, dieses Thema kann Sie dazu inspirieren, die unendlichen Möglichkeiten von Spring+AI tiefer zu verstehen und zu nutzen. Das Spring-Framework hat eine mehr als 20-jährige Geschichte im Bereich der Softwareentwicklung, und seit der Veröffentlichung der Spring Boot 1.0-Version sind 10 Jahre vergangen. Nun kann niemand diesen Frühling bestreiten

Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Was sind die Implementierungsmethoden für programmatische Frühlingstransaktionen? Jan 08, 2024 am 10:23 AM

So implementieren Sie programmgesteuerte Spring-Transaktionen: 1. Verwenden Sie TransactionCallback und TransactionCallbackWithoutResult; 4. Verwenden Sie TransactionTemplate in Kombination mit @Transactional;

Wie werden Annotationen für Testmethoden im JUnit-Framework verwendet? Wie werden Annotationen für Testmethoden im JUnit-Framework verwendet? May 06, 2024 pm 05:33 PM

Anmerkungen im JUnit-Framework werden zum Deklarieren und Konfigurieren von Testmethoden verwendet. Zu den Hauptanmerkungen gehören: @Test (Deklaration von Testmethoden), @Before (Methodenausführung, bevor die Testmethode ausgeführt wird), @After (Methodenausführung, nachdem die Testmethode ausgeführt wird). ausgeführt wird), @ BeforeClass (Methode, die ausgeführt wird, bevor alle Testmethoden ausgeführt werden), @AfterClass (Methode, die ausgeführt wird, nachdem alle Testmethoden ausgeführt werden). Diese Anmerkungen helfen dabei, den Testcode zu organisieren und zu vereinfachen und die Zuverlässigkeit des Testcodes zu verbessern durch die Bereitstellung klarer Absichten und Konfigurationen.

Der König der PHP-Code-Dokumentation: Eine erweiterte Anleitung zu PHPDoc Der König der PHP-Code-Dokumentation: Eine erweiterte Anleitung zu PHPDoc Mar 02, 2024 am 08:43 AM

Einführung: PHPDoc ist ein Kommentarstandard für PHP-Code, der eine leicht verständliche und informative Dokumentation erstellt. Durch die Verwendung spezifischer Kommentar-Tags ermöglicht PHPDoc Entwicklern, wichtige Details zu Funktionen, Klassen, Methoden und anderen Codeelementen bereitzustellen. Dieser Leitfaden für Fortgeschrittene wirft einen detaillierten Blick auf PHPDoc, demonstriert seine Fähigkeiten und bietet effektive Dokumentationsstrategien. Syntax und Tags: PHPDoc-Kommentare beginnen mit doppelten Schrägstrichen (//) oder mehrzeiligen Kommentaren (/**/). Im Folgenden sind einige gängige Anmerkungs-Tags aufgeführt: @param: Definiert die Parameter einer Funktion oder Methode. @return: Gibt den Rückgabewert der Funktion oder Methode an. @throws: Beschreibt Ausnahmen, die von einer Funktion oder Methode ausgelöst werden können. @var: definiert die Attribute oder Instanzen der Klasse

Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? Wie steuern Anmerkungen in der Jackson-Bibliothek die JSON-Serialisierung und -Deserialisierung? May 06, 2024 pm 10:09 PM

Anmerkungen in der Jackson-Bibliothek steuern die JSON-Serialisierung und -Deserialisierung: Serialisierung: @JsonIgnore: Ignorieren Sie die Eigenschaft @JsonProperty: Geben Sie den Namen an @JsonGetter: Verwenden Sie die get-Methode @JsonSetter: Verwenden Sie die set-Methode Deserialisierung: @JsonIgnoreProperties: Ignorieren Sie die Eigenschaft @ JsonProperty: Geben Sie den Namen @JsonCreator an: Verwenden Sie den Konstruktor @JsonDeserialize: Benutzerdefinierte Logik

Detaillierte Erläuterung der Arbeitsschritte von MyBatis-Annotationen und dynamischem SQL Detaillierte Erläuterung der Arbeitsschritte von MyBatis-Annotationen und dynamischem SQL Feb 18, 2024 pm 03:29 PM

Detaillierte Einführung in die Verwendung von MyBatis Annotation Dynamic SQL MyBatis ist ein Persistenzschicht-Framework, das uns praktische Persistenzoperationen bietet. In der tatsächlichen Entwicklung ist es normalerweise erforderlich, SQL-Anweisungen basierend auf den Geschäftsanforderungen dynamisch zu generieren, um flexible Datenoperationen zu erreichen. MyBatis Annotation Dynamic SQL wurde entwickelt, um diesen Anforderungen gerecht zu werden.

See all articles