0

私はSpringで作業しており、新しい演算子でインスタンスを作成すると、注入されたインスタンスをnullとして取得しています。シナリオを詳しく説明できます。

たとえば、クラス A とクラス B がクラス Main に注入されるとします。


      class Main
         {
       @autowired
      A a;
        @autowired
       B b;

    //getter and setter
   }

class MainExecute
{
 public static void main()
 {
   // loading the spring config xml 
 Main main = new  Main();
 A a=main.getA();
  // whether a will get the instance  ( I'm getting a as null) 

 }

このシナリオの理由は何ですか?同じことを教えてください

前もって感謝します。

4

2 に答える 2

5

いいえ、依存性注入は行われません。

Springコンテナによって作成/管理されたオブジェクトのみが、Spring依存性注入によって提供される機能を取得します。

于 2013-03-20T07:20:39.053 に答える
4

上記の回答を詳しく説明するには:

Spring IOC コンテナーにオブジェクトを作成させる必要があります。明示的に作成する必要はありません。これは、Spring config xml ファイルを作成することで実行できます。簡単な例を次に示します。

META-INF\spring\my-spring-config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="myMainClass" class="org.foo.Main" />
<bean id="myA" class="org.foo.A" />
<bean id="myB" class="org.foo.B" />

</beans>

org.foo.MainExecute:

class MainExecute
{
 public static void main()
 { 

  ClassPathXmlApplicationContext appContext = new ClassPathXmlApplicationContext("META-INF\\spring\\my-spring-config.xml");
  Main main = (Main) appContext.getBean("myMainClass");

   }
}

この例では、Spring IOC コンテナーは「A」Bean と「B」Bean をインスタンス化します。次に、これらを「メイン」Bean に自動配線します。

于 2013-03-20T07:36:29.123 に答える