【问题标题】:TomEE custom property providerTomEE 自定义属性提供者
【发布时间】:2018-12-04 06:59:12
【问题描述】:

我在 TomEE 8 中运行我的应用程序。我想从我的数据库中读取一些属性并将其传递给应用程序。

我从https://rmannibucau.wordpress.com/2014/08/06/tomee-and-more-advanced-resource-configuration/ 看到了一个例子。可能是旧的。它不工作。在部署应用程序时,它需要资源类型。但是示例没有在资源标签中键入。

<Resource id="..." properties-provider="com.foo.MyPropertiesReader" />

将我的自定义属性从我的数据库加载到我的应用程序的最新/正确方法是什么?

【问题讨论】:

    标签: java apache-tomee openejb tomee-8


    【解决方案1】:

    我相信 Romain 试图在他的示例中保持简洁。在他的示例中,可以推测他使用的是javax.sql.DataSourceDataSource。尽管如此,这将适用于任何类型的资源,即使是custom resources。您还可以查看一些实现:

    在您提到的页面中,Romain 还指出您的类可以实现org.apache.openejb.api.resource.PropertiesResourceProvider,或提供Properties provides(); 方法。

    这是一个小例子:

    org.superbiz.provider.MyPropertiesReader.java

    package org.superbiz.provider;
    
    import org.apache.openejb.api.resource.PropertiesResourceProvider;
    import org.apache.openejb.testng.PropertiesBuilder;
    
    import java.util.Properties;
    
    public class MyPropertiesReader implements PropertiesResourceProvider {
        public Properties provides() {
            return new PropertiesBuilder()
                    .p("JdbcDriver", "org.hsqldb.jdbcDriver")
                    .p("JdbcUrl", "jdbc:hsqldb:mem:moviedb")
                    .build();
        }
    }
    

    src/main/webapp/WEB-INF/resources.xml

    <resources>
        <Resource id="movieDatabase"
                  type="DataSource"
                  properties-provider="org.superbiz.provider.MyPropertiesReader"/>
    </resources>
    

    这些是关键的sn-ps,我希望能帮助您消除疑虑。数据源的实现留给您编码。 :)

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      相关资源
      最近更新 更多