spring如何在web启动时不连接数据库,而在需要时在连接数据库?

问题描述

现在又一个应用,在web启动时不想让它连接数据库,如果在web启动时就自动出始化数据库连接,那么数据库连接出现问题就会使应用起不起来,现在就是要求能在应用中用到数据库,调用持久层数据时,在初始化数据库实例。现在有个方案不知可行吗,1.在web.xml中配置时先不让web启动就自动加载有关数据库初始化的配置文件,而是在以后需要数据库连接访问的应用时,通过获取配置文件,获得相应的bean实现。2.对applicationcontext.xml中的有关数据源的bean设置lazy-init=true.谁能给个可行方法,希望介绍详细点,orm采用hibernate。 问题补充:其实你说的很有道理,但是我说的和你理解的需求稍微有点偏差,现在是因为应用中有些不使用数据库的应用,也是希望数据库不能连接的情况下,对其他不需要数据库的应用不造成影响,所以还要求在spring初始化实例时,不希望初始化有关数据库的实例,而是在应用操作用到持久化操作时候在连接数据库,其实现的主要目标是实现两方面业务的分离。不知道你还有没有什么好的可行的方法可以满足我的需求,还望赐教。

解决方案

引用enet_java 写道定义datasource,但是不要将datasource注入到任何dao层。 在需要jdbc时,可以通过datacource实例来获取数据库的连接。 那我配置好dataSource和sessionFactory bean后,在dao层在hibernateDaoSupport的继承类中通过setSuperSessionFactory方法重新设置sessionFactory,那么在dao的实现类中能否直接调用相应的方法,这样能够实现吗? public class CustomHibernateDaoSupport extends HibernateDaoSupport { ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:dataSource.xml") @Autowired public void setSuperSessionFactory(SessionFactory sessionFactory) { setSessionFactory(sessionFactory); } } ....................... public class HibernateLogDataDAO extends CustomHibernateDaoSupport implements LogDataDAO{ //持久化操作; } 这样做可行吗,能达到目的吗?谢谢。 可以,通过注入的sessionFactory就可以得到JDBC连接了。
解决方案二:
定义datasource,但是不要将datasource注入到任何dao层。在需要jdbc时,可以通过datacource实例来获取数据库的连接。
解决方案三:
如果通过初始化获取数据库的连接,可以通过orm或者是spring来进行连接池的维护和实物的管理,自己通过根据需要来进行获取的话,就算实现不知道性能如何,我没有过这种应用,不敢多说。不过我个人感觉这种需求不是很合理,如果启动的时候数据库出现了问题,你敢保证你通过程序获取数据库连接的时候就可以成功?

时间: 2024-09-20 09:37:05

spring如何在web启动时不连接数据库,而在需要时在连接数据库?的相关文章

基于纯Java代码的Spring容器和Web容器零配置的思考和实现(3) - 使用配置

经过<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(1) - 数据源与事务管理>和<基于纯Java代码的Spring容器和Web容器零配置的思考和实现(2) - 静态资源.视图和消息器>两篇博文的介绍,我们已经配置好了Spring所需的基本配置.在这边博文中,我们将介绍怎么使用这些配置到实际项目中,并将web.xml文件替换为一个Java类. 我们使用Java代码来配置Spring,目的就是使我们的这些配置能够复用,对于这些配置的复用,我们采用继承和引入来实现

如何在Web页面上直接打开、编辑、创建Office文档

web|创建|页面 有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.dll".通过这个控件,客户端

服务器-web项目在执行大量的插入语句时执行一段时间后卡死

问题描述 web项目在执行大量的插入语句时执行一段时间后卡死 SSH框架,在页面有一个poi 批量导入excel的功能,每读取excel一行,保存为一个实体然后循环insert到DB里.刚开始程序运行正常,但是一段时间过后,系统出现卡死,不再执行insert sql ,刷新页面也没有响应,只能重启服务器.期间程序没有报错,myeclipse也不是内存溢出导致的卡死,因为点击其他功能模块时不会出现上述所说的问题,只有在执行大量的insert sql 时才会. 因为代码没有报错我也就不贴代码了. 我

spring+cxf发布WebService启动tomcat出现问题

问题描述 spring+cxf发布WebService启动tomcat出现问题 启动tomcat是出现异常 严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error c

如何在web项目中,得到比如一个js的文件

问题描述 如何在web项目中,得到比如一个js的文件:我是想通过程序写js,如data.js在WEB-INF 目录的script目录下我如何构造File,然后往里面写数据 问题补充:wocool_8 写道 解决方案 在Servlet里写可以吗? String webRoot = super.getServletContext().getRealPath("/");File file = new File(webRoot+"/WEB-INF/script/data.js&quo

如何在Web页面上直接打开、编辑、创建Office文档_javascript技巧

如何在Web页面上直接打开.编辑.创建Office文档  有朋友询问如何在Web页面上做到像SharePoint中的效果一样,能直接激活客户端的Word来打开.doc文件,而不是类似直接点击.doc文档链接时Word在IE中被打开那样.想想这个问题应该很多人都会感兴趣,所以干脆写一篇blog来大致描述一下方法. 在安装Office2003以后,有一个ActiveX控件被安装到了系统中,这个控件位于"Program Files\Microsoft Office\OFFICE11\owssupp.d

【spring boot】5.spring boot 创建web项目并使用jsp作前台页面

贼烦的是,使用spring boot 创建web项目,然后我再idea下创建的,but 仅仅启动spring boot的启动类,就算整个项目都是好着的,就算是能够进入controller中,也不能成功访问到jsp页面.很尴尬!也很无语!   好吧,开头一句抱怨,下面全靠编~~~ ======================================================================================================= 1.idea

基于Spring DM的WEB应用开发

Spring DM 1.1.x的最大特性便是它可以支持在其中部署WEB应用,我使用后感觉这是个很酷的特性,我甚至觉得用这种方式开发基于OSGi WEB应用比使用Spring DM Server更好,至少目前你可以获得更好的便携性(可以在多个Spring DM支持的OSGi平台上运行),并且Spring DM Server并没有提供更多的企业应用支持. 不过对于刚使用Spring DM进行WEB应用开发的人来说,成功地配置却不是一件容易的事.以下详细的讲解一下相关配置. 1 运行环境所需的Bund

android-如何在 web 视图中显示外国字体?

问题描述 如何在 web 视图中显示外国字体? 程序需要在一个 web 视图的 HtmlString 中显示外国字体 HtmlString =""<html><body style='background-color:#000000; color:ffffff; font-family:georgiatimes new romantimesserikrutidev010; margin-top:0px; margin-bottom:0px; margin-right: