当前位置: 首页 > 面试题库 >

有没有一种标准的方法来为Java EE容器定义JDBC数据源?

贡和裕
2023-03-14
问题内容

我知道对于JBoss,您需要在适当实例的/ deploy子目录中有一个[name] -ds.xml文件。我没有使用其他Java
EE容器的经验,但是我试图尽可能地遵循标准。有没有定义和部署JDBC数据源的标准方法?如果可能的话,我想将我的数据源包含在*
.ear文件中(例如,出于演示目的而嵌入的内存中HSQLDB数据源)?

如果没有标准方法,其他容器至少会接受jboss方法吗?(/deploy/*-ds.xml)


问题答案:

是否存在定义和部署JDBC数据源的标准方法?

就在这里。它是通过做<data-source>元素,你可以把web.xmlejb- jar.xmlapplication.xml。如果您不喜欢XML,也可以为此使用注释:@DataSourceDefinition

web.xml条目的示例

<data-source>
    <name>java:app/myDS</name>
    <class-name>org.postgresql.xa.PGXADataSource</class-name>
    <server-name>pg.myserver.com</server-name>
    <database-name>my_db</database-name>
    <user>foo</user>
    <password>bla</password>
    <transactional>true</transactional>
    <isolation-level>TRANSACTION_READ_COMMITTED</isolation-level>
    <initial-pool-size>2</initial-pool-size>
    <max-pool-size>10</max-pool-size>
    <min-pool-size>5</min-pool-size>
    <max-statements>0</max-statements>
</data-source>

进一步阅读:

  • 引入DataSourceDefinition注释
  • Java EE中@DataSourceDefinition的状态
  • 示例应用程序使用标准数据源

ps我很惊讶所有其他答案都说这根本不存在,尽管它确实存在,甚至在最初问这个问题的时候也是如此。



 类似资料:
  • 在我的应用程序中,有几个组件将生成各种不同类型的特定于应用程序的事件。这些事件将发布到代理并传递给N个客户端。其中一些客户端是我的服务器端应用程序中的其他Java类,但主要消费者是我的基于javascript的WebUI。 到目前为止,我目前的方法是定义一个抽象事件基类来封装一些公共字段,然后为每个事件实现一个特定的事件类。 这一直工作正常,只是现在我需要在javascript和java端维护事件

  • 我已经回顾了类似的问题“查看并清除Postgres缓存/缓冲区?,但所有的答案都集中在数据缓冲区上,并且自2010年以来,Postgresql发生了很大变化。 与那个问题的OP不同,我不是在计算性能时寻找一致的行为,而是在数据库随时间变化时寻找自适应的行为。 在我的应用程序中,在作业执行开始时,工作表中的行为空。查询运行非常快,但是随着时间的推移,性能下降,因为准备好的语句没有使用理想的访问路径(

  • 我正在创建一个JSP. tag文件来处理这个用例: 其中,行为将是获取请求参数,转义其值以“安全”使用,并将转义值放回某个作用域(例如请求),与参数同名(尽管它可能是另一个名称)。 我有一个可以工作的实现,但我有scriptlet,因为我找不到在JSTL中使用变量名的方法。但我不是JSTL向导,所以我想看看我是否缺少语法/方法。这是正在工作的文件: (我真希望艾尔能自动逃脱。)

  • 问题内容: 似乎有很多方法可以在Python中定义单例。关于堆栈溢出是否有共识? 问题答案: 我没有真正的需要,因为具有功能(而不是类)的模块可以很好地用作单例。它的所有变量都将绑定到模块,该模块无论如何都无法重复实例化。 如果您确实希望使用类,则无法在Python中创建私有类或私有构造函数,因此,您只能通过使用API​​的约定来保护自己免受多重实例化。我仍然将方法放在模块中,并将模块视为单例。

  • 问题内容: 是否有Python设计决策(PEP)阻止将排序后的容器添加到Python? (不是已排序的容器,因为它是按插入顺序排序的。) 问题答案: 对于Guido而言,这是一个有意识的设计决定(他甚至不愿意添加模块)。他的目标是在选择应用程序的数据类型时保留“一种显而易见的方式”。 基本概念是,如果用户足够复杂,以至于不能意识到内置类型不是解决其问题的正确解决方案,那么他们还可以找到合适的第三方

  • 我正在努力用testNG在类级别声明一个参数。我有一个参数,在方法级别声明时可以正常工作。 因为我正在将测试映射到cucumber步骤定义,并将在方法级别声明一个参数,所以我想将browser参数从方法级别转移到类(全局)级别。因此,在xml文件中,我将浏览器参数从测试级别移动到套件级别,如下所示: 然后在测试类中,我从方法和类中删除了参数,并将声明为。不幸的是,浏览器在运行时找不到,导致一个: