Maison  >  Article  >  Java  >  Une brève analyse des annotations spring et springboot

Une brève analyse des annotations spring et springboot

不言
不言avant
2018-10-15 16:03:292212parcourir

Le contenu de cet article concerne les annotations de spring et springboot. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

@ConfigurationProperties

Il est très pratique de lier le contenu du fichier de ressources à l'objet

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

Injecter une valeur simple

@Import

Ajouter l'instance à springIOC en important dans le conteneur, ajoutez l'annotation @Import à la configuration de l'annotation MainConfig comme suit :

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

Résultats en cours d'exécution :

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

@RequestMapping

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

Cette annotation peut être utilisée sur les classes et les méthodes. Elle est utilisée sur les classes pour indiquer le chemin parent. Par exemple, si la classe est demo et la méthode est /demo1, alors le chemin d'accès est demo/demo1. >Cette annotation a six attributs : params : Spécifie que la requête doit contenir certaines valeurs de paramètres avant de pouvoir être traitée par cette méthode.

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

valeur : Spécifiez l'adresse réelle de la requête, l'adresse spécifiée peut être un mode URI Template

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

consomme : Spécifiez le type de contenu de soumission pour le traitement de la demande (Content-Type), tel que application/json, text/html ;
produit : Spécifie le type de contenu à renvoyer uniquement lorsque le type (Accepter) dans l'en-tête de la demande contient. le type spécifié,

sera renvoyé
@PathVariable

correspond à la variable sur le chemin et est utilisé avant le paramètre Le nom de la variable sur le chemin. doit être cohérent avec le nom du paramètre

@RequestParam

RequestMapping("demo/demo1/{name}")public String say(@PathVariable String name){
}
a le même effet que le code suivant

String name = request.getParameter("nom").

@RequestBody

signifie que les paramètres de la méthode sont liés au corps de la requête HTTP et que le front-end ne peut pas le soumettre sous le formulaire et doit être soumis en json .

@ResponseBody

@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body,@RequestBody User user){
   //可以绑定自定义的对象类型
}
indique que la sortie est constituée de données au format json.

@ModelAttribute

1. Lorsqu'ils sont appliqués aux paramètres, les paramètres transmis par le client seront injectés dans l'objet spécifié par son nom, et cet objet sera automatiquement ajouté. Dans ModelMap, il est pratique à utiliser dans la couche View ;

2 Lorsqu'il est appliqué aux méthodes, il sera exécuté avant chaque méthode marquée avec @RequestMapping. S'il y a une valeur de retour, la valeur de retour sera. automatiquement ajouté au ModelMap;

@Bean

est équivalent à 60e23eb984d18edbb092da6b8f295aba4bb0e59fd50cbfe6f6ce2215b9d94243 classe, ce qui signifie générer un bean et remis à la direction de Spring.

@Qualifier

Lorsqu'il existe plusieurs beans du même type, vous pouvez utiliser @Qualifier("name") pour spécifier. Utilisé conjointement avec @Autowired

@Autowired

appartient au package org.springframework.beans.factory.annotation de Spring et peut être utilisé pour les attributs de classe, les constructeurs, la méthode pour l'injection de valeur

@Resource

n'est pas une annotation de spring, mais provient de JSR-250 sous le package java.annotation. Utilisez cette annotation comme bean cible. . Spécifiez le bean collaborateur.

@Resource est équivalent à @Autowired et peut être annoté sur la méthode setter d'un champ ou d'un attribut.

Remarque :

L'annotation @Autowired est assemblée par type par défaut. Si le conteneur contient plusieurs beans du même type, une exception indiquant que le type de bean spécifié est introuvable sera signalée. lors du démarrage du conteneur Solution Il est qualifié en combinaison avec l'annotation @Qualified et spécifie le nom du bean injecté.

@Resource Si l'attribut name n'est pas spécifié et que l'objet dépendant ne peut pas être trouvé selon le nom par défaut, l'annotation @Resource reviendra à l'assembly par type. Mais une fois l’attribut name spécifié, il ne peut être assemblé que par nom.

L'assemblage avec l'annotation @Autowired peut facilement générer des exceptions, en particulier lorsque plusieurs types de beans sont assemblés. La solution consiste à ajouter @Qualited pour la qualification.

Annotations de classe de composants

@Component : standard d'une classe Spring Bean ordinaire.

@Repository : marquez une classe de composant DAO.

@Service : marquez une classe de composant de logique métier.

@Controller : marque une classe de composant de contrôleur.

@Component peut remplacer @Repository, @Service et @Controller, car ces trois annotations sont annotées par @Component. La classe Java annotée est traitée comme une instance Bean. Le nom de l'instance Bean est par défaut la première lettre de la classe Bean en minuscules et les autres parties restent inchangées. @Service peut également personnaliser le nom du Bean, mais il doit être unique !

@SpringBootApplication

Contient @Configuration, @EnableAutoConfiguration, @ComponentScan

généralement utilisés dans les classes de démarrage.

@ComponentScan


Analyse des composants. Si les classes avec @Component @Controller @Service et d'autres annotations sont analysées, ces classes seront enregistrées en tant que beans.

@Configuration

indique que cette classe est la source d'informations de la configuration du Bean, qui est équivalente à 3c9fdce8078791299ca92e41bddc2b8fa6748f3712e7c0e1f60ffca24b3db7b0 généralement ajouté à la classe principale supérieure.

@EnableAutoConfiguration

Laissez Spring Boot configurer automatiquement le framework Spring en fonction des dépendances déclarées par l'application, généralement ajoutées à la classe principale.

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

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer