我试图确定为什么在Spring Integration存储过程出站网关的存储过程参数中使用bean引用时无法识别它。我已经能够在两者之间放置一个服务激活器,并以bean作为有效负载创建一个新消息,它工作得很好。但是为什么我不能使用实际的bean呢?
下面是一段代码:
<bean id="updateDataContentsMapper" class="org.companyname.connector.support.UpdateDataContentsMapper" depends-on="updateDataContents">
<property name="updateDataContents" ref="updateDataContents"/>
</bean>
<bean id="updateDataContents" class="org.companyname.connector.model.UpdateDataContents"/>
<int:channel id="update-sp-channel"/>
<int:channel id="operation-completion-channel"/>
<int-jdbc:stored-proc-outbound-gateway
id="01-update-data-contents-sp-gateway"
request-channel="update-sp-channel"
reply-channel="operation-completion-channel"
data-source="dataSource"
stored-procedure-name="usp_UpdateDataContents" >
<int-jdbc:sql-parameter-definition name="@vKeyValue"
direction="IN"
type="VARCHAR"
scale="100"/>
<int-jdbc:sql-parameter-definition name="@nSeqNum"
direction="IN"
type="NUMERIC"
scale="20"/>
<int-jdbc:sql-parameter-definition name="@vMessageLog"
direction="IN"
type="VARCHAR"
scale="100"/>
<int-jdbc:sql-parameter-definition name="@vRC"
direction="OUT"
type="VARCHAR"
scale="30"/>
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.vKeyValue}"/>
<int-jdbc:parameter name="@nSeqNum" value="#{updateDataContents.nSeqNum}"/>
<int-jdbc:parameter name="@vMessageLog" value="#{updateDataContents.vMessageLog}"/>
<int-jdbc:parameter name="@vRC" type="java.lang.String" value="new java.lang.String"/>
<int-jdbc:returning-resultset name="updateDataContents" row-mapper="org.companyname.connector.support.UpdateDataContentsMapper" />
</int-jdbc:stored-proc-outbound-gateway>
我发现很难确定我需要什么。
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.vKeyValue}"/>
<int-jdbc:parameter name="@vKeyValue" value="#{updateDataContents.getVKeyValue()}"/>
<int-jdbc:parameter name="@vKeyValue" value="updateDataContents.getVKeyValue()"/>
<int-jdbc:parameter name="@vKeyValue" expression="payload.getVKeyValue()"/>
谢谢,
戴夫
我们需要在这里确定您的目标:如果您需要使用预定义的值,或者在存储过程适配器每次接收消息时计算它。
value=“#{updateDataContents.getvkeyValue()}
是一个Bean定义表达式,在启动时只计算一次。
在
中有一个表达式
替代属性,可以如下所示指定:
<int-jdbc:parameter name="@vKeyValue" expression="@updateDataContents.getVKeyValue()"/>
通常在Spring上下文中,如果原型bean被注入到单例bean中,父类的属性将重写原型bean作用域。但是,如果在原型bean作用域中注入一个单例作用域bean会发生什么。仍然使用内部bean的get bean会返回内部bean的新实例吗?
本文向大家介绍Spring中多配置文件及引用其他bean的方式,包括了Spring中多配置文件及引用其他bean的方式的使用技巧和注意事项,需要的朋友参考一下 Spring多配置文件有什么好处? 按照目的、功能去拆分配置文件,可以提高配置文件的可读性与维护性,如将配置事务管理、数据源等少改动的配置与配置bean单独分开。 Spring读取配置文件的几种方式: 1、使用Spring自身提供的Appl
我正在使用Spring boot开发一些Java项目。我在项目中的文件a。 这个配置文件有一些bean定义,例如类。 项目使用作为库,在gradle中如下所示: 我可以在没有任何错误的情况下启动项目。但是当我试图在主类中的项目中使用,其中我有,它告诉我,所以我假设bean不在上下文中。 我想知道可能是什么问题?
我试图将Stormpath登录工作流添加到我的Spring Boot应用程序中,该应用程序在/api上下文中运行,该上下文在我的application.properties中定义为server.context-path=/api。 当我访问一个受限路径时,我会得到Stormpath登录页面,其中包含一个“Next”请求参数http://localhost:8080/api/login?next=%
我有以下项目结构: src/main/resources/meta-inf/applicationcontext.xml src/webapp/web.xml .另外,在构建部分的pom.xml中,我将最终名称设置为“bet-manager-api”。我做错了什么?为什么没有伐木?我检查了tomcat/logs/中的所有日志,但没有找到任何重要的日志。谢谢
问题内容: 我有一个Spring bean(dao)对象,该对象通过以下xml在ServletContext中实例化: 该bean在我的webapp-servlet.xml文件中声明,并由我的应用程序在ServletContext中使用。 我也在使用SpringSecurity。据我了解,这在不同的上下文(SecurityContext)中运行。 我的应用程序具有webapp-security.x
我使用Spring Boot 1.3.2,我注意到问题,ComponentScan在我的测试类不工作。我想嘲笑一些春豆。Spring引导是否阻止ComponentScan? 测试配置类: 测试类:
我是Spring的新手,如果我做了一些愚蠢的事情,请原谅我。我正在尝试为我的应用程序编写一个使用Spring的集成测试。 我正在创建一个上下文层次结构,如下所示 在我的测试方法中,我试图创建一个新的子上下文,它只有一个bean,它是一个应用程序侦听器,依赖于父方法中的bean。 我面临的问题是,来自子上下文的bean没有收到应用程序事件的通知,而且@Value注释也没有得到处理。 我到底做错了什么