recherche

Maison  >  Questions et réponses  >  le corps du texte

Spring如何在Java应用程序中自动实现依赖注入

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

巴扎黑巴扎黑2817 Il y a quelques jours619

répondre à tous(6)je répondrai

  • 迷茫

    迷茫2017-04-18 09:53:09

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

    répondre
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:53:09

    Vous avez besoin d'Autowired

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:53:09

    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

    répondre
    0
  • 高洛峰

    高洛峰2017-04-18 09:53:09

    Vous devez traiter votre HELLO comme une variable membre, puis accéder à @autowired ou @Resourse

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 09:53:09

    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 ?

    répondre
    0
  • PHP中文网

    PHP中文网2017-04-18 09:53:09

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

    répondre
    0
  • Annulerrépondre