当前,我们有一个使用Tomcat
context.xml文件中的数据源配置的应用程序。因此,我们能够通过检索JNDI名称并获得连接来成功获得连接。我想知道是否可以通过使用Spring数据源替换它,是否仍然需要context.xml文件中的信息?
示例“ context.xml”:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource
name="jdbc/myDataSource"
auth="Container"
type="javax.sql.DataSource"
username="john"
password="doe"
driverClassName="<removed>"
url="<removed>"
maxActive="30"
maxIdle="10"
maxWait="1000"
removeAbandonedTimeout="60"
removeAbandoned="true"
logAbandoned="true"/>
</Context>
因此,在我们的代码中,我们搜索这样的JNDI上下文:
Context envCtx = (Context) initCtx.lookup(..);
DataSource ds = (DataSource) envCtx.lookup(..);
Connection connection = ds.getConnection();
我想知道我们是否可以更好地定义Spring Datasource而不是使用这种方法,以及如何做到这一点?
我假设您dataSource
的配置现在与此类似:
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/MyDataSource"/>
如果您将其替换为以下内容:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://${jdbc.hostname}/${jdbc.schema}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
DataSource
不再需要 在Tomcat中进行配置。
在第一种情况下,连接池由Tomcat使用其自己的实现进行管理和公开。后一种配置(由于可移植性和减少对容器的依赖性而强烈建议使用)不依赖Tomcat。相反,Spring实例化了自己的连接池(请注意,池实现来自外部库,如DBCP或C3P0),并且绝对没有对Tomcat
JNDI参考的引用。
问题内容: 我正在使用REST服务(使用Spring引导),该服务运行批处理作业。我希望Batch仅与嵌入式数据源(用于存储元数据)一起使用,而默认数据源(在我的情况下为Postgres)将用于存储企业实体。 问题在于,Batch会在启动时尝试在默认数据源中创建元数据表(如 batch_job_execution , batch_job_instance 等)。 这是重现问题的示例配置: 批处理配
我正在使用运行批处理作业的REST-service(使用Spring Boot)。我希望Batch仅适用于嵌入式数据源(存储元数据),而默认数据源(在我的例子中为Postgres)将用于存储业务实体。 问题是Batch试图在启动时在默认数据源中创建元数据表(如batch_job_execution、batch_job_instance等)。 以下是重现问题的示例配置: 批量配置 数据源配置 通过这
我有一个Java4和Spring Boot2.4.0快照应用程序。 然后在DAO中定义JDBCTemplate。 CompanyContactDAOIMPL.java ApprovalRequestDAOImpl.java unsatisfiedDependencyException:创建名为“Approval RequestDaoImpl”的bean时出错:通过字段“JDBC Template”
我正在连接Azure SQL数据库,下一个任务是在连接失败时创建自定义重试逻辑。我希望重试逻辑在启动时(如果需要)以及应用程序运行时出现连接故障时都能运行。我做了一个测试,从我的应用程序中删除了IP限制,然后导致我的应用程序出现异常(例外)。我想处理引发异常的时间,以便触发一个作业,验证应用程序和服务器是否正确配置。我正在寻找一个解决方案,在那里我可以处理这些异常并重试DB事务? 数据源配置 应用
我需要创建一个带有签名的方法 此方法访问数组中的每个对象,并对属性租金求和并返回总金额。报税表:总租金 这是我的密码: 这是正确的吗?它一直说没有使用total变量,所以我不确定我是否做对了。
创建数据源的基本步骤: 在工作区窗口中,点击 “新建数据源”。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“确定”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实时”模式或“存档”模式。 点击“应用并
创建数据源的基本步骤: 在工作区窗口中,点击 。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“好”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实实时”模式或“存档”模式。 点击“应用并刷新数据”来查
创建数据源的基本步骤: 在工作区窗口中,点击 “新建数据源”。 输入数据源的名,然后选择所需的连接或现有的数据源。 点击“确定”。 一个选项卡将打开,让你编辑数据源。 将表或查询从连接窗格拖放到设计窗格。 将一个节点拖放到另一个节点以创建联接。 如有需要,请配置联接类型和联接字段。 【提示】创建联接后,你可以随时点击连接器上的联接图标来更改联接设置。 选择“实时”模式或“存档”模式。 点击“应用并