Spring如何在Java应用程序中自动实现依赖注入
巴扎黑
巴扎黑 2017-04-18 09:51:09
0
6
603

最近开发一个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

巴扎黑
巴扎黑

répondre à tous(6)
迷茫

Écrivez deux lignes supplémentaires en suivant votre exemple.

public class Main{

  public static void main(String[] args){
    ClassPathXmlApplicationContext ctx = new FileSystemXMLApplicationContext("beans.xml");
    Hello hello = ctx.getBeans("hello");
    hello.say();
  }
}

class Hello {
  @Autowired
  private DbUtil db;

  public void say(){
    System.out.println(db.getWelcomeInfo());
  }
}

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.

Peter_Zhu

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 :

  1. Déclarer le bean

  2. Injecter le haricot

Comment déclarer un bean :

  1. avec XML

  2. Ajouter @Component, @Service, etc. à la classe

  3. Écrivez la méthode @Bean dans la classe avec @Configuration

Méthode d'injection des haricots :

  1. avec XML

  2. 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

  1. 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+)

  2. Pour les applications Java, pourquoi ne pas essayer Spring Boot ?

Ty80

Le propriétaire du sujet recommandé peut jeter un œil à @ChaChage Servlet 3 + Spring MVC zéro configuration : supprimer tous les fichiers XML

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal