当前位置: 首页 > 知识库问答 >
问题:

Set属性的springbean问题

羊昊苍
2023-03-14

我有豆子,例如

<bean id="manager" class="com.Manager" init-method="init">
       <property name="services">
        <set>
            <ref bean="service" />
        </set>
    </property>
</bean>

<bean id="myService"
        class="com.MyService" abstract="true">
</bean>

<bean id="service" class="com.SpecificService" parent="myService">

</bean>

服务(特定服务)是使用抽象方法初始化()扩展抽象类MyService并使用方法特定的Logic()实现接口MyInterface的类。

因此,管理器在服务对象上调用方法init(),如下所示:

private Set<MyService> services;

public void init() {

    for (MyService service : services) {
        service.init();
    }



}

但当bean初始化时,我有以下问题:

无法转换“java.util”类型的属性值。将LinkedHashSet设置为所需类型“java.util”。设置“for property”“services”;嵌套异常为java.lang.IllegalStateException:无法将类型为[com.sun.proxy.$Proxy108实现com.MyInterface,org.springframework.aop.SpringProxy,org.sringframework.aop.framework.Advised]的值转换为属性“services[0]”所需的类型[com.MyService]:找不到匹配的编辑器或转换策略。

共有2个答案

子车文康
2023-03-14

也许您可以尝试初始化您的 Set 服务以进行初始化。

您刚刚将其声明为

private Set<MyService> services;

它只考虑接口Set,在您的bean配置中,默认情况下该集合似乎是LinkedHashSet。

因此,您可以尝试初始化Set服务,如:

 private Set<MyService> services = new LinkedHashSet<>();
白越
2023-03-14

您确定已发布所有配置吗?因为有一些AOP“隐藏”(可能是通过注释)代码,因为服务bean是代理的。您必须选择:

    < li >更改< code >私有集合的声明

检查你的代码

 类似资料:
  • 下面的示例将展示使用方法设置dom元素的属性,批量更新以及在将HTML String解析为Document对象后添加/删除类方法。 语法 (Syntax) Document document = Jsoup.parse(html); Element link = document.select("a").first(); link.attr("href","www.yahoo.c

  • 我在下面的应用程序上下文xml上有这些配置 我在加载上下文时遇到以下异常 组织。springframework。豆。工厂UnsatifiedPendencyException:创建名为“org”的bean时出错。springframework。上下文支持在类路径资源[dbaccessContext.xml]中定义的PropertySourcesPlaceholderConfigurer#0]:通过

  • 我有一个像下面这样的家长。 而我的孩子波姆就像。 我的文件夹结构像 POM-test(根文件夹具有父pom)---child(具有子pom) 当我运行mvn clean install时,我的孩子得到了如下的异常。 为什么我不能安装这个pom?

  • 我在该组件中有一个Angular2组件,它目前有一堆字段,前面应用了@input(),以允许绑定到该属性,即。

  • 问题内容: 我已经设置了一个自签名证书来测试ssl java连接-但是,它拒绝查找java trustStore。除了将类编译到的文件夹(使用netbeans)(以及使用netbeans)之外,我还将其副本保存在/ Java / jre6 / lib / security中,以及上述都不起作用,因为当我运行以下命令时-trustStore = null。 如何正确设置路径? * UPDATE **

  • 出于某种原因,我得到了错误“react-nable read属性'set state'的undefined”。因此,this.state永远不会用用户输入的值更新。当我尝试注释掉的绑定时,我会出现奇怪的行为,无法输入用户名,也不再得到null错误,但值只是未定义。如有任何帮助,不胜感激。谢了。