使用spring依赖注入来生成运行时生成的依赖

希望:

我是Spring的新手,为了更好地了解我正在学习的内容,我决定将Spring集成到我的一个项目中。在项目中,运行时会生成事件的集合,其中事件是POJO。FetcherA和FetcherB是两个类,它们依赖于Event实例来获取其输出,这意味着FetcherA和FetcherB的输出对于不同的Event实例是不同的。由于这些事件是在运行时生成的,因此如何使用Spring依赖项注入将事件Bean注入到在运行时创建的每个FetcherA和FetcherB对象中。下面是我的代码的示例。

public class Event {
     //some data fields
}

public class FetcherA {
    private Event event;

    FetcherA (Event event) {this.event=event}
    
    public String fetch () {//fetch output based on this event}
}

public class FetcherB {
    private Event event;

    FetcherB (Event event) {this.event=event}
    
    public String fetch () {//fetch output based on this event}
}

public static void main (String[] args) {
   List<Event> events = EventsFetcher.fetchEvent();
   List<String> myTextBook = new ArrayList<String>();
   events.forEach ( event -> {
      String messageBody= new FetcherA (event).fetch();
      String messageTitle = new FetcherB (event).fetch();
      myTextBook.add(messageBody);
      myTextBook.add(messageTitle);
   });

} ```
安德烈亚斯(Andreas):

在您的用例中Event,,FetcherAFetcherB都不应该由Spring管理,即它们不应该是Spring Bean。

如果将Fetch字段作为fetch()方法的参数移动,那将允许两个FetcherX类都是单例 bean。

您可以坚持认为,在这种情况下,这些FetcherX类将是原型 bean,并且您的代码将与spring容器集成以在循环内请求新的实例。并非最佳。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章