0

如何使用 Spring Annotation 在 Object 中初始化 List

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

如何List<Transaction> _transaction;使用 Spring Annotation 进行初始化,否则我
必须在 xml 文件中定义它。

但我不想写任何 xml 文件

4

2 回答 2

2

您可以将 Spring Java@Configuration用于此类任务:

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

在您的 Accounts 类中,您必须使用@Resource, not @Autowired,注入列表的语义略有不同 - 如果您使用 @Autowired,任何相同类型的 bean 都将被注入列表中。

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

这是纯 Java 解决方案,创建列表时不涉及 xml。

于 2013-10-30T13:23:37.943 回答
1

如果Transaction是一个带有@Service、@Component 或@Repository 注解的Bean,你可以在你的字段上写@Autowired。

@Component
class Accounts{

   @Autowired
   private List<Transaction> _transaction;
   //getter setter
}
于 2013-10-30T13:16:20.327 回答