我是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);
});
} ```
在您的用例中Event
,,FetcherA
或FetcherB
都不应该由Spring管理,即它们不应该是Spring Bean。
如果将Fetch
字段作为fetch()
方法的参数移动,那将允许两个FetcherX
类都是单例 bean。
您可以坚持认为,在这种情况下,这些FetcherX
类将是原型 bean,并且您的代码将与spring容器集成以在循环内请求新的实例。并非最佳。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句