如何使用Spring Annotation初始化Object内的List

时间:2013-10-30 13:12:17

标签: spring spring-mvc

如何使用Spring Annotation初始化Object内的List

@Component
class Accounts{
   private List<Transaction> _transaction;
   //getter setter
}

如何使用Spring Annotation初始化List<Transaction> _transaction;或者i    必须在xml文件中定义它。

但我不想写任何xml文件

2 个答案:

答案 0 :(得分:2)

您可以使用Spring Java @Configuration执行此类任务:

@Configuration
public class SpringConfig {
    @Bean
    public List<Transaction> transactions() {
        ...... //Your logic to generate the list..
        return transactions;
    }
}

在您的Accounts类中,您必须使用@Resource,而不是@Autowired,注入列表的语义有点不同 - 如果您使用@Autowired,任何相同类型的bean都将获得注入清单。

@Component
class Accounts{
   @Resource(name="transactions")
   private List<Transaction> _transaction;
   //getter setter
}

这是纯java解决方案,创建列表时没有涉及xml ..

答案 1 :(得分:1)

如果Transaction是带有@ Service,@ Component或@Repository Annotation的Bean,则可以在字段顶部编写@Autowired。

@Component
class Accounts{

   @Autowired
   private List<Transaction> _transaction;
   //getter setter
}