代码之家  ›  专栏  ›  技术社区  ›  Gnana

TomEE自定义属性提供程序

  •  0
  • Gnana  · 技术社区  · 7 年前

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

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

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

    1 回复  |  直到 7 年前
        1
  •  1
  •   James    7 年前

    我相信罗曼在他的例子中力求简明扼要。在他的例子中,可以推测他正在使用 javax.sql.DataSource DataSource 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();
        }
    }
    

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

    这些是关键的片段,我希望能帮助你消除疑虑。数据源的实现留给您编写代码。:)

    推荐文章