Annotations courantes et exemples de springboot

一、 @SpringBootApplication

Parmi SpringBootles classes de démarrage créées automatiquement par le framework pour nous, @SpringBootApplicationles balises d'annotation sont utilisées pour modifier la classe de démarrage.
@SpringBootApplicationLa balise d'annotation est en fait une balise d'annotation composée, comprenant @EnableAutoConfiguration, @ComponentScangénéralement utilisée sur la classe principale

annotation illustrer
@SpringBootApplication Utilisé pour déclarer des classes de démarrage pour modification
@EnableAutoConfiguration C'est springbootl'annotation de base pour la configuration automatique, à travers laquelle springl'application doit être beaninjectée dans le conteneur
@ComponentScan Il est utilisé pour analyser automatiquement les classes identifiées par des annotations et les générer iocdans le conteneur bean. La portée d'analyse par défaut est @ComponentScanles classes dans le package de classe de configuration et les sous-packages où se trouvent les annotations

Deux, @Configuration, @Bean

annotation illustrer
@Configuration Agir sur la classe pour configurer springle conteneur (contexte d'application), ce qui revient à utiliser la classe comme fichier springde configurationxml
@Haricot Créez beanun objet et ajoutez-le au conteneur en agissant sur la méthode
Exemple:

SSMLors de l'intégration du framework natif , si nous voulons IOCajouter un objet personnalisé au conteneur, ce que nous devons faire est d' ajouter la déclaration de contenu de la balise suivante
sous Springla balise talon du fichier de configuration utilisé par le framework :

<bean id="user" class="com.qf.testspringboot.pojo.User">
 <property name="id" value="1"/>
 <property name="username" value="张三"/>
 <property name="age" value="22"/>
</bean>

Mais dans SpringBootle cadre, nous sommes autorisés à IOCinjecter directement des objets personnalisés dans le conteneur en créant et en renvoyant des objets Java.
Ce processus dépend des @Configurationbalises d'annotation et @Beandes balises d'annotation.
Nous préparons d'abord une Userclasse:

@Data //记得要导入Lombok相关的依赖
@NoArgsConstructor
@AllArgsConstructor
public class User {
    
    
 private Integer id;
 private String username;
 private Integer age;
}

Créez ensuite une UserConfigurationclasse et utilisez @Configurationla balise d'annotation de cette classe pour déclarer que cette classe est une classe de configuration :

@Configuration
public class UserConfiguration {
    
    
}

Créez une méthode dans cette classe, la valeur de retour de la méthode est Usertype et le nom de la méthode est IOCle nom de l'objet injecté dans le conteneur, et utilisez @Beanl'étiquette d'annotation pour cette méthode :

@Configuration
public class UserConfiguration {
    
    
  @Bean
  public User user() {
    
    
  /*
  下列代码等价于:
  <bean id="user" class="com.qf.testspringboot.pojo.User">
  <property name="id" value="1"/>
  <property name="username" value="张三"/>
  <property name="age" value="22"/>
  </bean>
  方法的返回值数据类型等价于<bean>标签中的class属性取值
  方法的方法名等价于<bean>标签中的id属性取值
  */
  User user = new User(1, "张三", 22);
    return user;
  }
}

À ce stade, le flux logique permettant SpringBootau framework d'analyser et IOCd'injecter des objets dans le conteneur est :

  1. Lorsque le framework SpringBoot scanne @Configurationle type décoré avec des balises d'annotation, il considérera cette classe comme une classe de configuration ;
  2. @BeanL'objet de valeur de retour de la méthode décoré avec des balises d'annotation dans la classe de configuration sera automatiquement injecté IOCdans le conteneur pour le stockage ;
  3. @BeanLe type de données de la valeur de retour de la méthode de décoration de balise d'annotation est équivalent à la valeur d'attribut de la balise class;
  4. Par défaut, @Beanle nom de méthode de la méthode décorée avec la balise d'annotation est équivalent à idla valeur d'attribut de la balise, c'est-à-dire le IOCnom d'objet de l'objet dans le conteneur.

De cette façon, nous pouvons XMLfacilement IOCinjecter des objets Java personnalisés dans le conteneur sans utiliser de fichiers de configuration.


3. @AutoWired

@AutowiredPar défaut, il est assemblé par type, ce qui est souvent utilisé dans les classes d'implémentation de la couche métier et les classes d'implémentation de la couche de persistance.

Exemple:

Dans TestControllerla classe, @Autowiredun objet est automatiquement injecté via la balise d'annotation User, et lors testde l'accès à la méthode, l' Userobjet est imprimé :

@Controller //SpringMVC当中的注解标签都还能用
public class TestController {
    
    
 @Autowired
 private User user; //自动注入自定义的User对象
 @RequestMapping("/test")
 @ResponseBody
 public String test() {
    
    
 System.out.println(user); //打印这个User对象
 return "Hello SpringBoot!";
 }
}

Le résultat d'exécution du programme lors de l'accès testà la méthode :
insérez la description de l'image ici


四、@Service、@Controller、@Repository、@Component

annotation illustrer
@Service Pour la couche métier, la couche logique métier serviceest injectée dans springle conteneur
@Manette conteneur controllerd'injection de couche de contrôlespring
@Dépôt Conteneur daod'injection de couche de persistancespring
@Composant conteneur domaind'injection communspring

五、@ResponseBody、@RestController

annotation illustrer
@ResponseBody Agissez sur la méthode ou la classe, laissez le résultat de retour de la méthode être directement écrit dans HTTP response body, sans passer par l'analyseur de vue, et les données retournées seront affichées directement sur la page.
@RestController C'est une combinaison de @Controlleret , agissant sur la classe, l'effet est égal à l'ajout de et @ResponseBodysur la classe@ResponseBody@Controller

六、@RequestMapping、@GetMapping、@PostMapping

annotation illustrer
@RequestMapping urlUtilisez cette annotation pour accéder via la configuration , qui peut getêtre ou publier
@GetMapping Utilisez cette annotation pour urlaccéder via la configuration et limiter getla méthode de requête
@PostMapping Utilisez cette annotation pour urlaccéder via la configuration et limiter postla méthode de requête

七、@RequestParam、@RequestBody

annotation illustrer
@RequestParam Il est principalement utilisé pour recevoir url?les paramètres getou postdemandes suivants, tant qu'il y a des paramètres derrière, url?les paramètres correspondants peuvent être obtenus
@RequestBody Cette annotation est utilisée pour obtenir les données du corps de la requête ( body), getil n'y a pas de corps de requête, elle est donc généralement utilisée pour postles requêtes
  1. Dans GETles requêtes, vous ne pouvez pas utiliser@RequestBody
  2. Dans la requête, et POSTpeuvent être utilisés , mais s'ils sont utilisés , la configuration de la conversion des paramètres doit être unifiée.@RequestBody@RequestParam@RequestBody
  3. Peut utiliser plusieurs @RequestParamdonnées de récupération, @RequestBodypas

Je suppose que tu aimes

Origine blog.csdn.net/klylove/article/details/125408327
conseillé
Classement