Les annotations Spring peuvent réduire la configuration XML ; la configuration des annotations présente de nombreux avantages par rapport à la configuration XML : elle peut utiliser pleinement le mécanisme de réflexion de Java pour obtenir des informations sur la structure des classes, ce qui peut réduire efficacement le travail de configuration. Par exemple, lorsque vous utilisez des annotations JPA pour configurer le mappage ORM, nous n'avons pas besoin de spécifier les noms, types et autres informations des attributs PO. Si les champs de la table de relations et les noms et types des attributs PO sont cohérents, vous n'avez même pas besoin d'écrire l'attribut de tâche. Informations de mappage - car ces informations peuvent être obtenues via le mécanisme de réflexion Java.
Cours recommandés : Tutoriel Java.
Avant d'utiliser les annotations, vous devez activer la fonction d'analyse automatique
où package de base est le package (y compris les sous-packages) qui doit être scanné.
<context:component-scan base-package="cn.test"/>
@Configuration traite une classe comme un conteneur IoC Si @Bean est enregistré sur l'un de ses en-têtes de méthode, il sera utilisé comme Bean dans le conteneur Spring.
Portée d'annotation @Scope
@Lazy(true) indique une initialisation paresseuse
@Service est utilisé pour annoter les composants de la couche métier,
@Controller est utilisé Marquer les composants de la couche de contrôle (tels que l'action dans les entretoises)
@Repository est utilisé pour marquer les composants d'accès aux données, c'est-à-dire les composants DAO.
@Component fait généralement référence à des composants lorsque les composants sont difficiles à classer, nous pouvons utiliser cette annotation pour les annoter.
@Scope est utilisé pour spécifier la portée (utilisé sur les classes)
---------------jsr250----
@PostConstruct est utilisé pour spécifier la méthode d'initialisation (utilisée sur la méthode)
@PreDestory est utilisé pour spécifier la méthode de destruction (utilisée sur la méthode)
@Resource est assemblée par nom par défaut , une fois trouvé, aucun bean correspondant au nom ne sera assemblé par type.
----------
@DependsOn : Définir l'ordre d'initialisation et de destruction du Bean
@Primary : Lorsque plusieurs Beans apparaissent lors de l'assemblage automatique Lorsque un candidat est sélectionné, le bean annoté avec @Primary sera le premier choix, sinon une exception sera levée
@Autowired est assemblé par type par défaut Si on veut utiliser l'assembly par nom, cela peut l'être. utilisé conjointement avec l'annotation @Qualifier. Comme suit :
@Autowired @Qualifier("personDaoBean") Il existe plusieurs instances utilisées ensemble
@Annotation d'initialisation PostConstruct
@Annotation de destruction PreDestroy Singleton par défaut Chargé au démarrage ? ?
Pour appeler la méthode asynchrone @Async, vous devez ajouter le code suivant :
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="10"/> <property name="maxPoolSize" value="300"/> </bean> <task:annotation-driven/>
Pour que l'annotation @Async prenne effet, vous devez également configurer @EnableAsync
dans le programme principal de Spring Boot. Dans Spring, les méthodes basées sur l'annotation @Async sont appelées méthodes asynchrones
Ces méthodes seront exécutées dans des threads indépendants lors de leur exécution. l'appelant n'a pas besoin d'attendre la fin,
pour continuer d'autres opérations.
Ne définissez pas la fonction modifiée par @Async comme type statique, donc l'appel asynchrone ne prendra pas effet
@ComponentScan(basePackages = "com.xzc.")
@EnableAutoConfiguration
@SpringBootApplication
@PropertySource({"classpath:application.properties", "classpath:xzc.properties"})
@ImportResource("classpath :ws-client .xml")
@EnableRedisHttpSession
@EnableAspectJAutoProxy
@EnableCaching
@EnableAsync
@Configuration
@EnableScheduling démarre la tâche planifiée
L'annotation @Entity précise qu'il s'agit d'une entité Bean
L'annotation @SuppressWarnings ?1. @PathVariable
Lors de l'utilisation du mappage de style de modèle d'URI @RequestMapping, c'est-à-dire someUrl/{paramId}, le paramId à ce moment peut être transmis via l'annotation @Pathvariable. le liant aux paramètres de la méthode
@Controller @RequestMapping("/owners/{ownerId}") public class RelativePathUriTemplateController { @RequestMapping("/pets/{petId}") public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) { // implementation omitted } }
Le code ci-dessus lie la valeur des variablesownerId et petId dans le modèle URI aux paramètres de la méthode.
Si le nom du paramètre de méthode est incohérent avec le nom de la variable dans le modèle uri qui doit être lié, vous devez spécifier le nom dans le modèle uri dans @PathVariable("name").
Nouvelle fonctionnalité de Spring 4.2 - Utiliser @Order pour ajuster l'ordre de chargement des classes de configuration--------------- --- ----------------------------------
lombok simplifie la compréhension des annotations du code Java
annotations de lombok :
lombok ne fournit pas beaucoup d'annotations. Vous pouvez vous référer aux explications vidéo officielles et aux documents officiels.
Document d'aide en ligne sur les annotations Lombok : http://projectlombok.org/features/index.
Voici quelques annotations lombok couramment utilisées :
@Data : Annotation sur le class; fournit les méthodes d'obtention et de définition de tous les attributs de la classe. De plus, il fournit également les méthodes equals, canEqual, hashCode et toString
@Setter : annoté sur l'attribut ; l'attribut
@Getter : Annoté sur l'attribut ; fournit une méthode d'obtention pour l'attribut
@Log4j : Annoté sur la classe ; fournit un objet log log4j avec un attribut nommé log pour la classe ;
@NoArgsConstructor : Annotation Sur la classe ; fournir un constructeur sans paramètre pour la classe
@AllArgsConstructor : annoté sur la classe ; fournir un constructeur avec paramètres complets pour la classe
======== ==========================
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!