Utilisation d'annotation de springboot

1. Liste des annotations

@SpringBootApplication

Contient les annotations @ComponentScan, @Configuration et @EnableAutoConfiguration.

Parmi eux, @ComponentScan permet à Spring Boot d'analyser la classe Configuration et de l'ajouter au contexte du programme.

@Configuration  équivaut au fichier de configuration XML de spring; le code Java peut être utilisé pour vérifier la sécurité du type.

** @ EnableAutoConfiguration ** Configuration automatique.

** @ ComponentScan ** L'analyse des composants peut détecter et assembler automatiquement certains beans.

@Component  peut être utilisé avec CommandLineRunner pour effectuer certaines tâches de base après le démarrage du programme.

L'  annotation @RestController est une collection de @Controller et @ResponseBody, ce qui signifie qu'il s'agit d'un bean contrôleur et que la valeur de retour de la fonction est directement renseignée dans le corps de la réponse HTTP, qui est un contrôleur de style REST.

@Autowired est  automatiquement importé.

@PathVariable  récupère les paramètres.

@JsonBackReference  résout le problème des liens externes imbriqués.

@RepositoryRestResourcepublic est utilisé en  conjonction avec spring-boot-starter-data-rest.

Deux, annotations (annotations) explication détaillée

@SpringBootApplication : déclare que Spring Boot configurera automatiquement le programme si nécessaire. Cette configuration équivaut à: @Configuration, @EnableAutoConfiguration et @ComponentScan trois configurations.

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);
    }
}

@ResponseBody : indique que le résultat de retour de cette méthode est directement écrit dans le corps de la réponse HTTP, qui est généralement utilisé lors de l'obtention de données de manière asynchrone, et est utilisé pour créer une API RESTful.

Après avoir utilisé @RequestMapping, la valeur de retour est généralement analysée comme un chemin de saut. Après avoir ajouté @responsebody, le résultat de retour ne sera pas analysé comme un chemin de saut, mais est directement écrit dans le corps de la réponse HTTP.

Par exemple, pour obtenir des données json de manière asynchrone, après avoir ajouté @responsebody, les données json seront renvoyées directement.

Cette annotation est généralement utilisée en conjonction avec @RequestMapping. Exemple de code:

@RequestMapping(“/test”)
@ResponseBody
public String test(){
    return”ok”;
}

@Controller : Utilisé pour définir la classe du contrôleur. Dans le projet Spring, le contrôleur est responsable de la transmission de la requête URL envoyée par l'utilisateur à l'interface de service correspondante (couche de service)

Généralement, cette annotation est dans la classe, et généralement la méthode doit coopérer avec l'annotation @RequestMapping.

Exemple de code:

@Controller
@RequestMapping(“/demoInfo”)
publicclass DemoController {
    @Autowired
    private DemoInfoService demoInfoService;

    @RequestMapping("/hello")
    public String hello(Map map){
        System.out.println("DemoController.hello()");
        map.put("hello","from TemplateController.helloHtml");
        //会使用hello.html或者hello.ftl模板进行渲染显示.
        return"/hello";
    }
}

@RestController : utilisé pour annoter les composants de la couche de contrôle (tels que les actions dans les entretoises), une collection de @ResponseBody et @Controller.

Exemple de code:

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 : Fournit des informations de routage, responsable du mappage des URL à des fonctions spécifiques dans le contrôleur.

@EnableAutoConfiguration : configuration automatique de Spring Boot: essayez de configurer automatiquement votre application Spring en fonction des dépendances jar que vous ajoutez.

Par exemple, si HSQLDB existe sur votre chemin de classe et que vous n'avez pas configuré manuellement de beans de connexion à la base de données, nous configurerons automatiquement une base de données en mémoire ".

Vous pouvez ajouter des annotations @EnableAutoConfiguration ou @SpringBootApplication à une classe @Configuration pour sélectionner la configuration automatique.

Recherchez le numéro vertical public: MarkerHub , suivez la réponse [  vue  ] pour obtenir le tutoriel d'introduction du front et du back end!

Si vous trouvez que des classes de configuration automatique spécifiques que vous ne souhaitez pas sont appliquées, vous pouvez utiliser l'attribut d'exclusion de l'annotation @EnableAutoConfiguration pour les désactiver.

@ComponentScan : indique que cette classe découvre automatiquement les composants d'analyse.

La compréhension personnelle équivaut à cela si vous recherchez des classes annotées avec @Component, @Controller, @Service, etc., et les enregistrez en tant que Beans, vous pouvez collecter automatiquement tous les composants Spring, y compris les classes @Configuration.

Nous utilisons souvent l'annotation @ComponentScan pour rechercher des beans et les importer en combinaison avec l'annotation @Autowired. Tous les composants Spring peuvent être automatiquement collectés, y compris les classes @Configuration.

S'il n'y a pas de configuration, Spring Boot analysera le package où se trouve la classe de démarrage et les classes annotées avec @Service, @Repository et d'autres sous-packages.

@Configuration : il équivaut au fichier de configuration xml traditionnel. Si certaines bibliothèques tierces doivent utiliser le fichier xml, il est recommandé de continuer à utiliser la classe @Configuration comme classe de configuration principale du projet - vous pouvez utiliser @ Annotation ImportResource pour charger le fichier de configuration xml.

@Import : Utilisé pour importer d'autres classes de configuration.

@ImportResource : utilisé pour charger le fichier de configuration xml.

@Autowired : importer automatiquement les beans dépendants

@Service : généralement utilisé pour décorer les composants de la couche de service

@Repository : l'utilisation de l'annotation @Repository peut garantir que DAO ou les référentiels fournissent la traduction des exceptions. La classe DAO ou référentiels modifiée par cette annotation sera découverte et configurée par ComponetScan, et il n'est pas nécessaire de leur fournir des éléments de configuration XML.

@Bean : annoter une méthode avec @Bean équivaut au bean configuré en XML.

@Value : Injectez la valeur de la propriété configurée dans Spring boot application.properties. Exemple de code:

@Value(value = “#{message}”)
private String message;

@Inject : équivalent à @Autowired par défaut, mais il n'y a pas d'attribut requis;

@Component : fait référence au composant en général. Lorsque le composant n'est pas bien classé, nous pouvons utiliser cette annotation pour le marquer.

@Bean : C'est équivalent à XML, placé au-dessus de la méthode, pas de la classe, ce qui signifie qu'un bean est généré et géré par spring.

@AutoWired : importez automatiquement les beans dépendants. Méthode byType. Utilisez le Bean configuré pour terminer l'assemblage des attributs et des méthodes. Il peut annoter les variables des membres de la classe, les méthodes et les constructeurs pour terminer le travail d'assemblage automatique. Lorsque (required = false) est ajouté, aucune erreur ne sera signalée même si le bean n'est pas trouvé.

@Qualifier : Lorsqu'il y a plusieurs beans du même type, vous pouvez utiliser @Qualifier ("nom") pour spécifier. Utilisé en conjonction avec @Autowired. Le descripteur qualifié @Qualifier peut non seulement être injecté en fonction du nom, mais peut également être utilisé pour un contrôle plus précis de la sélection des candidats. Son utilisation spécifique est la suivante:

@Autowired
@Qualifier(value = “demoInfoService”)
private DemoInfoService demoInfoService;

@Resource (nom = "nom", type = "type"): s'il n'y a pas de contenu entre crochets, la valeur par défaut est byName. Faites des choses similaires avec @Autowired.

Trois, annotations JPA

@Entity : @Table (name = ""): indique qu'il s'agit d'une classe d'entité. Généralement utilisé pour jpa Ces deux annotations sont généralement utilisées ensemble, mais si le nom de la table et le nom de la classe d'entité sont identiques, @Table peut être omis

@MappedSuperClass : Utilisé pour déterminer l'entité qui est la classe parente. Les propriétés de la classe parente peuvent être héritées par des sous-classes.

@NoRepositoryBean : Généralement utilisé comme référentiel de la classe parent. Avec cette annotation, Spring n'instanciera pas le référentiel.

@Column : Si le nom du champ est le même que le nom de la colonne, il peut être omis.

@Id : indique que l'attribut est la clé primaire.

@GeneratedValue (strategy = GenerationType.SEQUENCE, generator = "repair_seq"): indique que la stratégie de génération de clé primaire est séquence (elle peut être Auto, IDENTITY, native, etc., Auto signifie qu'elle peut être basculée entre plusieurs bases de données), et le nom de la séquence spécifiée est repair_seq.

@SequenceGeneretor (name = "repair_seq", sequenceName = "seq_repair", allocationSize = 1): name est le nom de la séquence pour une utilisation facile, sequenceName est le nom de la séquence de la base de données et les deux noms peuvent être identiques.

@Transient : indique que cet attribut n'est pas un mappage vers un champ de la table de base de données et que le framework ORM ignorera cet attribut.

Si un attribut n'est pas un mappage de champ de la table de base de données, il doit être marqué comme @Transient, sinon, le framework ORM définit par défaut son annotation comme @Basic. @Basic (fetch = FetchType.LAZY): La balise peut spécifier la méthode de chargement des attributs d'entité

@JsonIgnore : La fonction est d'ignorer certaines propriétés du bean Java pendant la sérialisation json, et la sérialisation et la désérialisation sont affectées.

@JoinColumn (name = ”loginId”): One-to-one: Une clé étrangère dans cette table qui pointe vers une autre table. Un-à-plusieurs: une autre table pointe vers la clé étrangère de cette table.

@OneToOne, @OneToMany, @ManyToOne : correspond à un-à-un, un-à-plusieurs et plusieurs-à-un dans le fichier de configuration de mise en veille prolongée.

Quatre, annotations liées à SpringMVC

@RequestMapping : @RequestMapping ("/ path") signifie que le contrôleur gère toutes les requêtes URL de "/ path".

RequestMapping est une annotation utilisée pour traiter le mappage d'adresse de demande, qui peut être utilisée sur des classes ou des méthodes.

Utilisé sur les classes, cela signifie que toutes les méthodes de la classe qui répondent aux requêtes utilisent cette adresse comme chemin parent. L'annotation a six attributs:

params : spécifie que certaines valeurs de paramètre doivent être incluses dans la demande avant que la méthode ne soit traitée.

headers : la demande spécifiée doit contenir certaines valeurs d'en-tête spécifiées pour que la méthode puisse traiter la demande.

valeur : spécifiez l'adresse réelle de la demande, l'adresse spécifiée peut être en mode modèle d'URI

method : Spécifiez le type de méthode de la requête, GET, POST, PUT, DELETE, etc.

consomme : spécifiez le type de contenu (Content-Type) du contenu soumis pour traiter la demande, tel que application / json, text / html;

produit : spécifie le type de contenu à renvoyer, et ne renvoie que si le type spécifié est inclus dans le type (Accept) dans l'en-tête de la demande

@RequestParam : Utilisé devant les paramètres de méthode.
@RequestParam
Chaîne a = request.getParameter ("a").

@PathVariable : variable de chemin. Tel que

RequestMapping(“user/get/mac/{macAddress}”)
public String getByMacAddress(@PathVariable String macAddress){
    //do something;
}

Le paramètre doit être le même que le nom entre accolades.

Cinq, gestion globale des exceptions

@ControllerAdvice : contient @Component. Peut être scanné. Gérez les exceptions de manière uniforme.

@ExceptionHandler (Exception.class): Utilisé sur la méthode pour indiquer que la méthode suivante sera exécutée lorsque cette exception est rencontrée.

Je suppose que tu aimes

Origine blog.csdn.net/qq_39809613/article/details/108049484
conseillé
Classement