gpt4 book ai didi

即使数据库在启动时不可用,Spring 应用程序也应该启动

转载 作者:行者123 更新时间:2023-11-28 22:49:04 25 4
gpt4 key购买 nike

我有一个旧的 spring 应用程序,它使用 jee:jndi-lookup 作为数据源。此应用程序在 Tomcat 8 上运行。

 <jee:jndi-lookup id="datasource" jndi-name="java:/comp/env/jdbc/Tomcat8Database" destroy-method="close" expected-type="javax.sql.DataSource" lookup-on-startup="false"/>

数据库可能在应用程序启动时有时会关闭,但因为我也尝试延迟初始化 spring bean,所以它没有帮助,因为 spring 中的 JNDI 查找似乎总是在 Startup 上发生,或者它不在 spring controls 中作为服务器提供连接池。

任何想法或代码示例都会有所帮助。

最佳答案

根据 Spring javadoc ,对于惰性查找,需要指定一个代理接口(interface)。

代理接口(interface)指定用于 JNDI 对象的代理接口(interface)。通常与“lookupOnStartup”=false 和/或“cache”=false 结合使用。需要指定,因为在惰性查找的情况下,实际的 JNDI 对象类型是事先不知道的。

尝试:

<jee:jndi-lookup id="datasource" jndi-name="java:/comp/env/jdbc/Tomcat8Database" destroy-method="close" expected-type="javax.sql.DataSource" lookup-on-startup="false" proxy-interface="javax.sql.DataSource"/>

关于即使数据库在启动时不可用,Spring 应用程序也应该启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46345548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com