首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在java 8函数中注入spring

在java 8函数中注入spring
EN

Stack Overflow用户
提问于 2014-08-20 19:10:40
回答 2查看 2.6K关注 0票数 3

这是我怎么做的,也是应该做的问题。

我需要在Lambda函数中使用Spring管理的实例。简而言之,我希望DummyBranchMandrillBranch对象和其他分支由Spring来管理。

代码语言:javascript
复制
public class QOSStrategy {

  public static Function<DistributionMessage, List<Feedback>> executeQOS = (message)-> {
    QOSFilters qosFilters = new QOSFilters();
    List<Branch> providers = qosFilters.getProviderByQOs(message, 
    Arrays.asList(new DummyEmailBranch(), 
        new MandrillBranch(), 
        new EverbrideBranch(), 
        new JavaMailBranch(), 
        new DirectSMSBranch()));
  }
}

我看到的一个选项是从Spring应用程序上下文中获取它。但是有什么方法可以用Annotation来实现呢?

谢谢-Parshu

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-08-20 19:20:53

您可以自动收集实现相同接口的所有bean。

请参阅Spring文档这里

票数 1
EN

Stack Overflow用户

发布于 2014-08-20 22:27:28

我创建了一个由spring管理的QOSBean。结果是这样的-

代码语言:javascript
复制
public class QOSStrategy {

public static Function<DistributionMessage,CustomBean, List<Feedback>> executeQOS = (message, qosbean)-> {
QOSFilters qosFilters = (QOSBean)qosbean.getQosFilters();
        List<Branch> providers = qosFilters.getProviderByQOs(message, qosbean.getAllProviders());
}
}



public class QOSBean implements CustomBean {

@Autowired
private QOSFilters qosFilters;

@Autowired
private Branch dummyEmailProvider;
@Autowired
private Branch dummySMSProvider;
@Autowired
private Branch dummyVoiceProvider;
@Autowired
private Branch directSMSProvider;
@Autowired
private Branch everbridgeProvider;
@Autowired
private Branch mandrillProvider;
@Autowired
private Branch javaMailProvider;

public QOSFilters getQosFilters() {
    return qosFilters;
}

public Branch getDummyEmailProvider() {
    return dummyEmailProvider;
}

public Branch getDummySMSProvider() {
    return dummySMSProvider;
}

public List<Branch> getAllProviders (){
    return Arrays.asList(dummyEmailProvider, dummySMSProvider, dummyVoiceProvider, directSMSProvider, everbridgeProvider, mandrillProvider, javaMailProvider);
}

}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25412642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档