L'éditeur ci-dessous vous proposera une brève discussion sur les paramètres default-lazy-init et lazy-init au printemps. L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil
Il existe une configuration default-lazy-init="true" sur le nœud racine dans la configuration Spring :
1. Le paramètre default-lazy-init de .spring
Ce paramètre indique un chargement retardé, c'est-à-dire que le bean annoté ne sera pas instancié au démarrage du projet, à moins que ne démarre le projet <.> Doit être utilisé, l'annotation non instanciée objet est injectée et appelée lorsque le programme accède réellement à l'appel
Au début du printemps, le paramètre default-lazy-init est par défaut false et sera être chargé par défaut. L'intégralité du diagramme d'instance d'objet, de la configuration d'initialisation
ACTION à la configuration du service, à la configuration du dao, à la connexion à la base de données, aux transactions, etc. Cela peut réduire la charge sur le serveur Web pendant l'exécution, mais il s'agit sans aucun doute d'un paramètre extrêmement inefficace pour les développeurs.
spring fournit l'attribut default-lazy-init , sa forme de configuration est la suivante, dans applicationContext.xml :
< beans default-lazy-init ="true" >
.......
</beans>
Copier après la connexion
En développement réel, l'attribut default-lazy-init peut être défini sur true, ce qui peut réduire considérablement le temps de démarrage du projet
2. attributs au printemps
1. lazy-init
<beans>
<bean id="service1" type="bean路径" lazy-init="true"/>
<bean id="service2" type="bean路径" lazy-init="false">
<property name="service1" ref="service1"/>
</bean>
</beans>
Copier après la connexion
Pour les deux beans ci-dessus, un attribut lazy-init est vrai et le other est faux. Quelle est la différence
Lorsque le conteneur IoC démarre, service2 sera instancié, mais pas service1, mais lorsque le conteneur instancie service2, service1 est également instancié. Pourquoi, car service2 en a besoin. En d'autres termes, pour les beans lazy-init="true", le bean ne sera pas instancié au démarrage du conteneur IoC. Il ne sera instancié que lorsque le conteneur aura besoin de l'utiliser. Lazy-init est bénéfique pour l'efficacité du conteneur et vous pouvez ignorer les beans inutiles.
En même temps, nous pouvons utiliser l'attribut lazy-init dans le bean correspondant pour des modules spécifiques. lazy-init a une priorité plus élevée que la
priorité de default-lazy-init. .
Les annotations Spring peuvent être annotées sur le nom de la classe à l'aide de la balise d'annotation @Lazy(false), ce qui équivaut à configurer l'attribut lazy-init dans le bean
2. abstract
<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
</bean>
Copier après la connexion
Lorsque le bean abstract="true", le bean ne sera pas instancié
C'est juste pour gagner du temps de démarrage pendant le processus de développement, et lors du déploiement dans l'environnement réel, il n'est pas nécessaire de définir default-lazy-init sur true. Après tout, il n'est pas courant de le déployer dans un environnement réel. Le démarrer à chaque fois pendant 1 minute n'est pas un gros problème et peut améliorer l'efficacité du serveur.
Bien sûr, tous les beans ne peuvent pas définir default-lazy-init sur true. Lazy-init ne peut pas être utilisé pour les beans planificateur
[Recommandations associées]
1 <.>Tutoriel vidéo Java gratuit
2.
Tutoriel vidéo Java de la Geek Academy
3
Manuel du didacticiel JAVA
.
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!