我试图在步骤定义中使用DI。我有一个模块,
public class MyModule extends AbstractModule
{
private final static MyInterface INSTANCE = new MyInterfaceImpl();
@Override
protected void configure()
{
bind(MyInterface.class).toInstance(INSTANCE);
}
}
并希望将此实例注入步骤定义的构造函数中。
public class MyStepDefs
{
private final MyInterface instance;
@Inject
public MyStepDefs(MyInterface instance)
{
this.instance = instance
}
}
我想我需要使用cucumber-guice.properties文件来配置GuiceFactory,但是我不知道这是什么?目前我得到的错误是,
java.lang.NoClassDefFoundError: javax/inject/Singleton
at cucumber.runtime.java.guice.GuiceFactory$CucumberModule.configure(GuiceFactory.java:86)
我还应该使用提供程序进行构造函数注入吗?
< code>MyModule和< code>MyStepDefs类很好。< code > NoClassDefFoundError 是由于没有将最新版本的Guice作为依赖项添加而导致的。我加了这个,
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>3.0</version>
</dependency>
到我的<code>POM.xml<code>。
cucumber-guice.properties
文件位于 src/main/resources
文件夹中。此文件由 GuiceFactory
类读取,并应包含要使用的 Guice 模块的属性。例如..
guiceModule=com.felix.cucumber.MyModule
从cucumber-guice v1.2.4开始,这种情况略有改变。首先,配置文件改变了它的名字,现在它是< code>cucumber.properties。
其次,现在除了构建模块之外,还必须构建一个扩展cucumber.runtime.java.guice的类。InjectorSource
并将其设置为<code>guice的值。属性文件中的喷油器源代码。因此,除了已经创建的两个类之外,还必须创建第三个类:
public class MyInjectorSource implements InjectorSource {
@Override
public Injector getInjector() {
return Guice.createInjector(Stage.PRODUCTION, CucumberModules.createScenarioModule(), new MyModule());
}
}
然后在<代码>cucumber中。属性设置为guice。注入器源到这个新类的完全限定名<代码>cucumber。属性应该像以前一样位于src/main/resources
(或src/test/resource
,具体取决于您的需求)。
当然,您仍然需要pom.xml
文件中的依赖项。
丰富的过滤器插件的存在是 logstash 威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能。在本章我们就会重点介绍几个插件,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的 logstash 事件到后续的流程中去!
Codec 是 logstash 从 1.3.0 版开始新引入的概念(Codec 来自 Coder/decoder 两个单词的首字母缩写)。 在此之前,logstash 只支持纯文本形式输入,然后以过滤器处理它。但现在,我们可以在输入 期处理不同类型的数据,这全是因为有了 codec 设置。 所以,这里需要纠正之前的一个概念。Logstash 不只是一个input | filter | outpu
在 “Hello World” 示例中,我们已经见到并介绍了 logstash 的运行流程和配置的基础语法。从这章开始,我们就要逐一介绍 logstash 流程中比较常用的一些插件,并在介绍中针对其主要适用的场景,推荐的配置,作一些说明。 限于篇幅,接下来内容中,配置示例不一定能贴完整。请记住一个原则:Logstash 配置一定要有一个 input 和一个 output。在演示过程中,如果没有写明
exVim 的配色由三部分组成: 你自己的Vim配色, exVim 插件的语法高亮和插件的配色. 你可以按照以下步骤来定制你的配色: 安装你的配色 exVim 提供了三种方法安装你的自定义配色 方法1. 在 ex-colorscheme 中安装(推荐) 首选的方法是在 ex-colorschemes 中安装自己的配色, 这种方法仅仅需要你把自己的配色文件放到 vimfiles/bundle/ex-
目录: 在配置项目yml文件中: 问题: null 客户端YML: 有没有人知道我怎样才能在这两种情况下只带一个配置文件?
因为有很多不同配置 redis 的方式,StackExchange.Redis 提供了一个丰富的配置模型,当调用 Connect (或 ConnectAsync )时调用它。 var conn = ConnectionMultiplexer.Connect(configuration); 这里的 configuration 可以是下面的任意一个: 一个 ConfigurationOptions 实