java—对运行时生成的依赖项使用spring依赖项注入

nsc4cvqm  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(363)

我是spring的新手,为了更好地理解我所学的东西,我决定将spring集成到我的一个项目中。在项目中,在运行时生成事件集合,其中事件是pojo。fetchera和fetcherb是两个依赖于事件示例来获取其输出的类,这意味着对于不同的事件示例,fetchera和fetcherb的输出是不同的。
由于这些事件是在运行时生成的,因此如何使用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);
   });

} ```
33qvvth1

33qvvth11#

在您的用例中,没有 Event , FetcherA ,或 FetcherB 应该是spring管理的,即它们不应该是spring bean。
如果你移动了 Fetch 字段作为 fetch() 方法,这将允许 FetcherX 类是单例bean。
你可以坚持,在这种情况下 FetcherX 类将是原型bean,您的代码将与spring容器集成以请求循环中的新示例。不是很理想。

相关问题