没有Setter方法的Spring Autowire

时间:2017-02-15 07:34:54

标签: java spring

我是春天新手。我试图在没有setter方法的情况下自动连接TestDAO。但我没有自动装配。

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

请帮我解锁。

我的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{
}

1 个答案:

答案 0 :(得分:1)

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

@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);
  }
} 

希望它有所帮助,