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

Apache Camel-使用Spring从属性文件中读取JDBC数据源属性

宗政英才
2023-03-14

我需要从属性文件加载数据源属性

db.properties:

url = my_url
user = user_name
password = user_pass

这是数据源(camelcontext.xml):

我试着这样做,但没用。

<bean 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:db.properties"/>  </bean>
<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
  <property name="URL" value="${url}"/>
  <property name="user" value="${user}"/>
  <property name="password" value="${pasword}"/>
</bean> 

我的路由是在java dsl中实现的。

共有3个答案

龙承德
2023-03-14

使用表达式语言(如${...})时,必须引用属性文件的键,而不是值

<bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
  <property name="URL" value="${url}"/>
  <property name="user" value="${user}"/>
  <property name="password" value="${password}"/>
</bean> 
孟豪
2023-03-14

url=my\u url property name=“url”value=“${url}”

林项明
2023-03-14

为了在SpringXML中使用Camel属性,您必须添加以下ID为“Properties”的Springbean

<bean id="properties"
    class="org.apache.camel.component.properties.PropertiesComponent">
    <property name="location" value="classpath:db.properties"/>
</bean>

或者(在您的评论之后,请尝试以下内容):

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
       http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <bean id="dataSource" class="oracle.jdbc.pool.OracleDataSource">
       <property name="URL" value="${url}"/>
       <property name="user" value="${user}"/>
       <property name="password" value="${pasword}"/>
    </bean> 

    <context:property-placeholder properties-ref="properties"/>
    <util:properties id="properties" location="classpath:db.properties"/> 
 类似资料:
  • 这是我的项目结构 我在应用程序中有这个 在我的endpoint中,我有以下内容 在任何函数中,我都可以访问类似于的内容,它工作正常,但对于文件类型,它甚至没有编译,我收到以下错误: 创建名为'配置终结点'的bean时出错:注入自动生成的依赖项失败;嵌套异常是java.lang.IllegalArgumentExc0019:无法解决占位符'document.templates.filetypes'中

  • 问题内容: 我创建了一个REST Web服务,在其中创建了config.properties文件来存储和检索整个应用程序中的一些用户名和密码。我将其存储在/src/main/resources/config.properties中。 当我尝试从eclipse的Java代码加载它时,它工作正常。但是当我将它部署在tomcat中时,它没有加载。我用来加载属性文件的代码是 谁能帮我解决这个问题 问题答案

  • 问题内容: 在angularJS中,如何从属性文件中读取值? app.js: 问题答案: 如果是驻留在Web服务器上的文件,则只需执行以下操作: 您可以在此处查看示例: http://plnkr.co/edit/3Ne3roFOwcfVmg2mgnUr?p=preview

  • 我试图只使用注释创建Spring bean。我无法从属性文件加载@Bean类的值。 下面是我的代码: 知道我做错了什么吗?

  • 问题内容: 我有以下代码尝试读取属性文件: 我在最后一行有一个例外。特别: 问题答案: 根据你的异常,该值为null,这意味着类加载器未找到你的属性文件。我猜测myProp.properties位于项目的根目录中,如果是这种情况,则需要前面的斜杠:

  • 我有一个实用工具类,其中我有一个方法,它需要用户名和密码来连接其他URL。我需要将用户名保存在属性文件中,这样我就可以随时更改它。但当我在静态方法中使用它(作为实用程序类)时,问题是它显示为空(即它不能从属性文件中读取)。 但当我在其他控制器中输入这些值时,它们就会到达那里。所以我的问题是如何读取静态字段中的属性值