我是春天的新手。我正在尝试不使用setter方法自动连接TestDAO。但是我无法自动接线。

System.out.println(“ TestClass.testDAO” + testDAO);它返回空值。

请帮助我解锁。

我的xml配置:

<context:component-scan base-package="com.test" />
<context:annotation-config/>

<bean id="testClass" class="com.test.TestClass" autowire="byName">
</bean>


Java类:

@Component
public class TestClass {

    @Autowired(required=true)
    public TestDAO testDAO = null;
    {
        System.out.println("TestClass.testDAO "+testDAO);
    }
}

@Repository
public class TestDAO{
}

最佳答案

这是有关如何修复代码的示例:

@Component
public class TestClass {

  @Autowired(required=true)
  public TestDAO testDAO;

  // When someone calls this method, the testDao component should
  // be initialized with TestDAO instance.
  public void someMethod(){
    System.out.println("TestClass.testDAO "+testDAO);
  }
}

public interface TestDAO extends JpaRepository<MyEntity, Long>{
}


另外,您可以在构造函数中使用@Autowired批注。

@Component
public class TestClass {

  public TestDAO testDAO;

  @Autowired
  public TestClass(TestDAO testDAO){
   this.testDAO = testDAO;
   System.out.println("TestClass.testDAO "+testDAO);
  }
}


希望能帮助到你,

09-10 23:44