[JAVA] Spring framework Mémo d'étude simple (1): ApplicationContext, Bean, Autowired
Spring framework Mémo d'étude simple (1): ApplicationContext, Bean, Autowired
Essentiel
- Évitez les nouvelles classes
--IoC, DI, injection de dépendances
Façon de penser
--Définition du conteneur (ApplicationContext)
--Définition du conteneur (Bean)
Méthode de définition
--A, base JAVA
--B, basé sur XML
--C, base d'annotations ★
Base JAVA
- @ Configuration (côté conteneur)
- @ Bean (côté conteneur)
Basé sur XML
- À partir d'un fichier XML
Base d'annotation
- @ Configuration (côté conteneur)
- @ ComponentScan (côté conteneur)
- @ Composant (côté conteneur)
Référence Bean
- A、setXXX()
--B, constructeur ()
- C、@Autowired★
@Autowired
- @Autowired(required = false)
-Définir si la valeur d'injection est requise, éviter l'erreur lorsqu'elle n'est pas définie
- @Qualifier("XXX")
- Basé sur le type d'injection ⇒ basé sur le nom, plusieurs beans du même type peuvent être injectés
- @Bean(name = "XXX")
--Peut être spécifié
- @XXX
- Vous pouvez définir votre propre annotation
- @Resource
--Champs et propriétés
--Batch Autowired est possible avec la liste et la carte
@ComponentScan
- @ComponentScan(basePackages = "XXX.XX.XX")
--Cible:
- @ Demandes et réponses du contrôleur
-@Entreprise de services
- @ Persistance des données du référentiel
- @ Composant autre que celui ci-dessus
- Le filtre peut être spécifié
Portée Bean
- singleton(default)
- Même instance dans le conteneur DI
- porototype
--Créez une instance lorsque vous obtenez un bean
- session
unité de session
- request
unité de demande
-- etc.
Comprendre les différents problèmes de portée
- Prise en compte de la nature de l'instance générée
--Utilisation d'un proxy étendu
Jeter le contenant
- Fermeture explicite
context.close()
Split Config
- @import({AxxConfig.class,BxxConfig.class})
Profilage de configuration
- @profile("development")
- @profile("production")
--Ce qui précède peut être sélectionné pour chaque environnement