最近开发一个Java应用程序,希望能使用Spring来实现依赖注入。
在Web应用程序中,可以在web.xml文件中配置listener来自动实现注入。
在Java Application中,可以通过如下的方式来加载Spring:
ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");
Hello hello = ctx.getBeans("hello");
但这样的一个问题是,在每次使用一个bean时,都需要显示调用一次getBeans。
不知有什么好的方法,能够让Spring自动加载对象,而不需要显式调用getBeans?
更多 0
Écrivez deux lignes supplémentaires en suivant votre exemple.
La couche qui gère initialement les requêtes dans le projet Web doit encore être générée via getBeans(). C'est juste que cette étape est effectuée par tomcat/strtus/springMVC.
Spring injectera automatiquement les classes gérées par lui Cependant, la classe principale démarrée par votre programme n'est pas générée par la direction de Spring.
Vous avez besoin d'Autowired
Pour utiliser l'injection de dépendances de Spring, vous devez d'abord obtenir le bean de Spring pour vous assurer que les dépendances du bean ont été injectées. Si vous créez vous-même un nouvel objet, comment Spring peut-il l'injecter pour vous ?
Vous pouvez encapsuler vous-même la méthode getBeans
Vous devez traiter votre HELLO comme une variable membre, puis accéder à @autowired ou @Resourse
L'injection de dépendances n'est rien de plus que deux étapes :
Déclarer le bean
Injecter le haricot
Comment déclarer un bean :
avec XML
Ajouter @Component, @Service, etc. à la classe
Écrivez la méthode @Bean dans la classe avec @Configuration
Méthode d'injection des haricots :
avec XML
Annotations comme @Autowire
Il n'est peut-être pas complet, mais ceux-ci devraient être ceux couramment utilisés. Pour plus de détails, veuillez vous référer à la documentation du printemps et à la partie ioc
.Posons une question
Il n'est pas nécessaire de configurer l'écouteur dans web.xml dans les applications Web (le prérequis est servlet3.0+, comme tomcat7+)
Pour les applications Java, pourquoi ne pas essayer Spring Boot ?
Le propriétaire du sujet recommandé peut jeter un œil à @ChaChage Servlet 3 + Spring MVC zéro configuration : supprimer tous les fichiers XML