问题标签 [property-injection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
365 浏览

java - Spring:是否可以注入外部索引属性?

我有下一个 application.properties 文件:

我正在寻找一种将其作为列表注入 Spring bean 的方法 - 如下所示:

org.springframework.beans.factory.BeanCreationException:创建名为“应用程序”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 java.util.List ru.croc.rosstat.csod.store.migrations.cli.Application.contactPoints;嵌套异常是 java.lang.IllegalArgumentException:无法解析字符串值“${cassandra.connection.nodes}”中的占位符“cassandra.connection.nodes”

我知道可以在一个逗号分隔的行中指定主机,但这不是我想要的。另一种选择是使用@ConfigurationProperties,它可以工作。但是有没有办法仅通过注释来注入列表?

0 投票
3 回答
3706 浏览

java - 使用带有 NoSQL JUnit @Rule 的 Spring Data 随机(嵌入式)Mongo 端口

我目前正在尝试编写一个使用 Spring Data Mongo 存储库的集成测试类。我使用de.flapdoodle.embed.mongo依赖项提供的嵌入式 Mongo 实例。Spring Data 文档指定我们只需将此依赖项放入项目EmbedMongoAutoConfiguration中,其余部分由其负责。

现在,没关系,将端口设置为0使自动配置过程找到一个空闲端口来启动 mongo 实例。

这个特性对我来说是必要的,以避免与其他测试发生冲突(这些测试与我公司的其他项目一起在 Jenkins CI 服务器上运行)。

现在问题来了,我希望能够在我的每个测试方法运行之前从一些外部文件中注入一些测试数据。我发现 NoSQL Unit 可以通过一个简单的方法注释和一个 JUnit 来做到这一点@Rule

这是一个例子:

我的问题是,@Rule需要 Mongo 端口在其构建器中实例化底层的 MongoClient,但是在实例化 @Rule 时,Spring 上下文尚未完全初始化并且EmbeddedMongoAutoConfiguration尚未发布端口。

所以我的问题是,有没有人曾经在 NoSQL 单元中使用过 Embedded Mongo 功能,有没有办法,例如在 Spring 上下文初始化@Rule 后创建?

我想知道是否自己找到空闲端口(以静态方式),将其设置为@Rule然后告诉EmbeddedMongoAutoConfiguration通过覆盖IMongodConfigbean 来使用它是一个好主意吗?还是有“更简单”的方式?

注意:我刚刚看到 fladdoodle 库提供了一个类和一个静态方法来查找一个空闲的服务器端口,并且它被 Spring 使用,如下所示:

提前谢谢大家!

编辑:我尝试了我刚才谈到的解决方案,它似乎有效,但我仍然认为它有点“冗长”和肮脏。

然后在关联的配置类中:

0 投票
1 回答
475 浏览

c# - 使用 Mono.Cecil 注入属性的自动实现的支持字段

为了更懒,我只是想写更少的代码但做同样的事情,所以我做了一个测试。只想使用一些属性并使用 mono.cecil 用一些 il 代码注入 .dll 文件。以下是详细信息:编码时:

注入后,有新代码生成(通过 ILSpy)(C# 代码):

定义代码:

看不出来,但是IL代码没问题:

定义代码也很好:

但是当我运行注入的代码时,它会抛出一个异常:“NullReferenceException:对象引用未设置为对象 AssemblyTest.set_Counter(Int32 值)的实例”。那么有没有人可以给我一些提示。

0 投票
1 回答
729 浏览

java - 评估 Spring 的 context.xml 中的属性(基本模板)

我想知道是否可以评估 Spring 的 xml 配置文件中的属性。我目前已经在使用PropertyPlaceholderConfigurer. 但我想要实现的是注入一个值,如果某个属性是true,注入另一个值,如果它是false

例如,如果我的自定义属性为truehibernate.hbm2ddl.auto ,我想将我的 persistence.context.xml 中的 hibernate 属性设置为仅验证。我知道我可以像这样指定默认值:com.github.dpeger.jpa.validate

但是是否有可能以某种方式评估属性的值可能是这样的:

0 投票
1 回答
2767 浏览

c# - 构造函数中的属性注入值为 null

我正在使用 OWIN 中间件(因此使用 startup.cs 而不是 global.asax)在我的 ASP.NET MVC 5 Web 应用程序中连接 Autofac 依赖注入,并尝试使用属性注入在控制器中设置公共变量。

我正在玩属性注入,让 Autofac 自动在 LoginController 中设置 Test 属性。

这是我的 startup.cs 的样子。我一直在玩,所以其中一些代码可能不需要(或导致我的问题?)。

因此,“测试”公共属性始终为空,因此会在运行时中断。

有什么想法可能是我的问题吗?提前感谢您的帮助!:)

0 投票
3 回答
432 浏览

spring - 属性注入是Spring中的一种依赖注入吗?

XML

JAVA

如上图,属性“msg”通过“setMsg”方法注入到“this.msg”中,我理解为“属性注入”。就我而言,Spring的DI被提升为解耦类,但上面的代码只是注入属性。我想知道属性注入是否基于Spring中的DI。希望有人可以帮助我。

0 投票
1 回答
2057 浏览

c# - DryIoC 不会将属性注入 ASP.NET Core MVC 控制器

我使用https://bitbucket.org/dadhi/dryioc/src/589e7c0b356a/NetCore/src/DryIoc.AspNetCore.Sample作为基线。尝试使用以下内容实现基于属性的属性注入选择器:

whereDependencyAttribute标记要注入的属性。如果不将此解决方案嵌入到 ASP.NET MVC Core 应用程序中,它就可以正常工作。当我尝试[Dependency]使用 ASP.NET Core 应用程序在具有属性的控制器中注入属性时.WithDependencyInjectionAdapter(...),它不起作用,它只注入(并拦截)那些类,这些类是接管服务后ConfigureServices(以及.AddDryIoc<TCompositionRoot>之后注册的) )。

我使用的代码部分:

DI类:

附加信息:

  1. 构造函数注入在控制器中工作。
  2. 彻底搜索了 DryIOC 容器配置以进行属性注入,但它是关于 WebApi 应用程序的,而不是我尝试的情况。
  3. 我试图切换顺序,.WithDependencyInjectionAdapter(...).With(rules => ...)没有运气。
  4. 拦截也不适用于控制器。我正在使用@dadhi 的拦截建议:https ://bitbucket.org/dadhi/dryioc/wiki/Interception 。顺便说一句,您如何使用 Castle 和 DryIoC 为控制器注册拦截器?
  5. 我不会CompositionRoot在这里复制课程;它很无聊,很长而且不相关。

获得控制器属性注入和控制器方法拦截工作的任何想法?

0 投票
0 回答
136 浏览

c# - 防止 Autofac 积极注入属性?

我有一个简单的课程:

我在 Autofac 注册:

如果我解析一个工厂并创建一个 MyWidget 实例:

属性“Something”被赋值为“test”,即使它与构造函数参数无关。为什么 Autofac 认为它应该设置它涉及的第一个属性?我该如何防止这种情况?我正在使用 Autofac v4.0.0。

0 投票
3 回答
8616 浏览

java - 属性上的 Spring @Autowired 和 @Value 不起作用

我想@Value在一个属性上使用,但我总是得到0(在 int 上)。
但是在构造函数参数上它可以工作。

例子:

该对象是弹簧管理的,否则构造函数参数将不起作用。

有谁知道是什么导致了这种奇怪的行为?

0 投票
1 回答
1857 浏览

c# - 使用 Simple Injector 在静态类中注入属性

我使用了来自简单注入器的依赖注入。现在我正在尝试实现属性注入,但帮助文档并没有多大帮助。

谁能用简单的例子解释一下属性注入是如何工作的?

我想在 Web 项目的一个实用程序类中使用它,而不是在控制器中。并且该类方法是静态的。