日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

spring hsqldb_在Spring中嵌入HSQLDB服务器实例

發(fā)布時(shí)間:2023/12/3 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring hsqldb_在Spring中嵌入HSQLDB服务器实例 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

spring hsqldb

我一直在愉快地使用XAMPP進(jìn)行開發(fā),直到不得不將其托管在可通過Internet訪問的某個(gè)地方,供客戶端進(jìn)行測試和使用。 我有一個(gè)僅具有384 RAM的VPS,并且需要快速找到方法,因此決定將XAMPP安裝到VPS中。 由于內(nèi)存較低,因此當(dāng)MySQL運(yùn)行時(shí),即使初始Java堆大小設(shè)置為64m,Tomcat也無法啟動。 在移至OpenShift之前,我設(shè)法將網(wǎng)站臨時(shí)托管在Jelastic中。

我玩弄了將數(shù)據(jù)庫和應(yīng)用程序服務(wù)器實(shí)例合并在1個(gè)JVM中的想法,以減少RAM使用(與運(yùn)行MySQL + Tomcat相比)。 搜索Internet之后,我發(fā)現(xiàn)了與Tomcat一起運(yùn)行HSQL服務(wù)器實(shí)例的幾篇文章。 毫無疑問,我必須先更新站點(diǎn)以使其與HSQL兼容,但是作為POC(概念驗(yàn)證)嘗試,我決定探索在Spring容器中運(yùn)行HSQL服務(wù)器實(shí)例的可行性。

像在Spring中的bean一樣運(yùn)行HSQL服務(wù)器有幾個(gè)原因:

1.多合一配置。 所需配置的一切都在Spring中完成。 Net中有一些示例可以與Tomcat一起運(yùn)行HSQL實(shí)例,但這需要向Tomcat中添加內(nèi)容(請參見下面的鏈接)。

2.應(yīng)用程序服務(wù)器獨(dú)立性。 “理論上”(用引號表示,因?yàn)槲覂H在Tomcat中成功對其進(jìn)行了測試),由于一切都在Spring中完成,因此無需在appserver中進(jìn)行任何配置。

HSQL服務(wù)器“ bean”還旨在以網(wǎng)絡(luò)模式(不是進(jìn)程內(nèi)(例如,mem或文件))啟動實(shí)例。 原因如下:

1.“ mem”進(jìn)程內(nèi)訪問是最快的,但不是持久的。 還有其他一些方法可以使用Spring的spring-jdbc標(biāo)簽來啟動“ mem”數(shù)據(jù)源,這是一種更好的方法。

2.“文件”進(jìn)程內(nèi)訪問是持久性的,但與“內(nèi)存”一樣,它只能在Java進(jìn)程內(nèi)訪問。

3.網(wǎng)絡(luò)模式(hsql)是持久性的,并且可以使用外部JDBC客戶端工具訪問。 這對于故障排除和驗(yàn)證很有用。

閱讀HSQLDB的文檔后,下面是執(zhí)行HSQL服務(wù)器實(shí)例bean生命周期管理的代碼:

package org.gizmo.hsql.spring;import java.io.IOException; import java.util.Properties;import org.hsqldb.Server; import org.hsqldb.persist.HsqlProperties; import org.hsqldb.server.ServerAcl.AclFormatException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.SmartLifecycle;public class HyperSqlDbServer implements SmartLifecycle {private final Logger logger = LoggerFactory.getLogger(HyperSqlDbServer.class);private HsqlProperties properties;private Server server;private boolean running = false;public HyperSqlDbServer(Properties props){properties = new HsqlProperties(props);}@Overridepublic boolean isRunning(){if(server != null)server.checkRunning(running);return running;}@Overridepublic void start(){if(server == null){logger.info('Starting HSQL server...');server = new Server();try{server.setProperties(properties);server.start();running = true;}catch(AclFormatException afe){logger.error('Error starting HSQL server.', afe);}catch (IOException e){logger.error('Error starting HSQL server.', e);}}}@Overridepublic void stop(){logger.info('Stopping HSQL server...');if(server != null){server.stop();running = false;}}@Overridepublic int getPhase(){return 0;}@Overridepublic boolean isAutoStartup(){return true;}@Overridepublic void stop(Runnable runnable){stop();runnable.run();} }

簡化的Spring配置:

server.database.0=file:d:/hsqldb/demobaseserver.dbname.0=demobaseserver.remote_open=truehsqldb.reconfig_logging=false


在Tomcat中啟動Spring時(shí)的示例輸出:

[Server@1e893ae]: [Thread[pool-2-thread-1,5,main]]: checkRunning(false) entered [Server@1e893ae]: [Thread[pool-2-thread-1,5,main]]: checkRunning(false) exited [Server@1e893ae]: Initiating startup sequence... [Server@1e893ae]: Server socket opened successfully in 7 ms. Sep 27, 2012 9:26:23 AM org.hsqldb.persist.Logger logInfoEvent INFO: checkpointClose start Sep 27, 2012 9:26:23 AM org.hsqldb.persist.Logger logInfoEvent INFO: checkpointClose end [Server@1e893ae]: Database [index=0, id=0, db=file:d:/hsqldb/demo base, alias=demobase] opened sucessfully in 442 ms. [Server@1e893ae]: Startup sequence completed in 451 ms. [Server@1e893ae]: 2012-09-27 09:26:23.395 HSQLDB server 2.2.8 is online on port 9001 [Server@1e893ae]: To close normally, connect and execute SHUTDOWN SQL [Server@1e893ae]: From command line, use [Ctrl]+[C] to abort abruptly


相關(guān)鏈接

  • http://hsqldb.org/doc/2.0/guide/index.html
  • http://dkuntze.wordpress.com/2009/01/28/hsql-on-tomcat/
  • http://www.ibm.com/developerworks/data/library/techarticle/dm-0508bader/


參考: YK的Workshop博客中的JCG合作伙伴 Allen Julia 在Spring中嵌入了HSQLDB服務(wù)器實(shí)例 。

翻譯自: https://www.javacodegeeks.com/2012/11/embedding-hsqldb-server-instance-in-spring.html

spring hsqldb

總結(jié)

以上是生活随笔為你收集整理的spring hsqldb_在Spring中嵌入HSQLDB服务器实例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。