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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

在Spring中嵌入HSQLDB服务器实例

發布時間:2023/12/3 javascript 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Spring中嵌入HSQLDB服务器实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

像在Spring中的bean一樣運行HSQL服務器有幾個原因:

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

2.應用程序服務器獨立性。 “理論上”(用引號表示,因為我僅在Tomcat中成功對其進行了測試),由于一切都在Spring中完成,因此不需要或幾乎不需要在應用服務器中進行配置。

HSQL服務器“ bean”還旨在以網絡模式(不是進程內(例如,mem或文件))啟動實例。 原因如下:

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

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

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

閱讀HSQLDB的文檔后,下面是執行HSQL服務器實例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時的示例輸出:

[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


相關鏈接

  • 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服務器實例 。

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。