我知道这应该是小菜一碟,但我就是一事无成。
在我的spring boot应用程序中,application.yml文件中,我有这样一个条目:
some:
constructor:
property: value
我有一个spring服务(这是假的,但证明了问题):
package somepackage;
@Service
public class DummyService {
public DummyService(@Value("${some.constructor.property}") String path) {}
}
但启动失败:
org.springframework.beans.factory.beanCreationException:创建文件[...(类文件)...]中定义的名为“dummy service”的bean时出错:实例化bean失败;嵌套异常为org.springframework.beans.beanInstantiationException:无法实例化[SOMEPackage.DummyService]:未找到默认构造函数;嵌套异常是java.lang.NoSuchMethodException:somePackage.dummyService.()
我如何才能说服spring它应该使用非空的构造函数,并且它应该从YAML文件中获得那个构造函数参数呢?注意:我没有使用任何XML bean配置文件或其他任何文件,我更希望不使用。
如果有人试图在Scala中这样做--这也是我真正想要做的,但希望在用Scala尝试之前在Java中得到答案--这是可行的:
@Service
class DummyService @Autowired()(@Value("${some.constructor.property}") val path: String) {
}
这在scala构造函数自动生成的SO案例中进行了介绍。
只需在构造函数上添加@Autowired注释。
@Autowired
public DummyService(@Value("${some.constructor.property}") String path) {}
我正试图在计算机上实现这个例子https://developer.android.com/jetpack/docs/guide.这就解释了Android应用程序的结构。 当我使用相同的代码时,我会出现以下错误。 我可以找出这个错误与 当我为ViewModel编写默认的零输入构造函数时,我得到了以下错误。 我想不出这个错误的原因和解决方法。
我必须为要使用构造函数注入的不同属性值创建多个相同类型的bean。 目前我已经使用Bean范围作为原型 现在它正在按照上面的代码创建2个bean。期望:如何组合getClient
我有一个接口,它在两个地方定义如下: 我的客户端实现类没有任何注释,只有必需的构造函数。在这种情况下,如何限定正确的接口实现用法?我不想使用,因为在我的例子中,将其中一个用法命名为primary在语义上是不正确的(它们在某种意义上是相等的)。我需要用相同的实现类传递相同的接口,但针对受尊敬的客户机的特定用例进行了不同的配置。我想命名一个参数就足够了,通过这个参数我将实现注入到bean创建方法中,但
有人能帮助实现没有注释的Guice吗? pom。xml 我所尝试的: 我得到的错误是: 我理解这个错误。 但是我希望我可以“指向”Guice到正确的构造函数......而不是使用注释。 如您所见,使用默认/空构造函数不是一个好选择,因为这个示例很简单,但我想坚持使用基于构造函数的注入。 附加: 根据我在评论中从赫曼特·辛格那里得到的“暗示”,我想我离得更近了。 我创建了一个ProductionIn
问题内容: 我的spring bean具有一个带有唯一强制性参数的构造函数,我设法用xml配置对其进行了初始化: 然后,我像这样使用此bean,并且效果很好。 但是我想用注释指定contructor arg值,例如 这可能吗 ? 提前致谢 问题答案: 首先,必须在bean定义中而不是在注入点中指定构造函数arg。然后,你可以利用spring的注释(spring 3.0) 就我所看到的问题而言,这可
我有一个有两个构造函数的类。我正在尝试使用 guice 工厂创建此类的实例。如果未传递任何参数,则应调用默认构造函数。如果传递了参数,则应调用带参数的构造函数。但目前即使我将参数传递给工厂方法,仍然会调用默认构造函数。带参数的构造函数根本不被调用。下面是我的工厂类。 以下是我尝试注入的构造函数。 下面是我在抽象模块实现类中的模块绑定。 下面是我如何调用构造函数。 我在这里做错了什么?任何帮助都将不