以我們的項目為例。
我們的項目是純后臺服務項目,即沒有前端頁面,只對外提供服務;項目基于SpringBoot,引入spring-boot-starter-web,直接公開接口,消息使用的JSON,很少接口是從舊系統遷移過來的,所以為了讓調用方盡可能小的修改,保留了XML消息;在正式的生產環境中,內置的Tomcat也是用;集成了Swagger,在線自動生成界面文檔。
ORM框架選擇MyBatis。由于項目中的查詢大多是單表查詢,且查詢條件相對固定,所以標注做出的SQL語句是直接綁定的。
因為項目不僅使用了關系型數據庫,而且經過處理關聯后在MongoDB中保存了更多的數據,所以項目也使用了Spring數據MongoDB。我們的MongoDB已經部署了副本集,使用Spring數據MongoDB,通過簡單的配置就可以完成對多個mongob的訪問。如果其中一個MongoDB掛了,對服務沒有影響,所以我們可以在擴展MongoDB時在線進行(擴展內存和CPU時MongoDB需要停止)。
在與一些系統的交互中使用了RabbitMQ,只要將spring-boot-starter-amqp引入SpringBoot,實際上就可以很容易地與RabbitMQ集成。生產者和消費者都很方便。
因為是純接口服務,為了減輕數據庫的壓力,我們根據業務場景(數據變化不頻繁,業務場景對實時性要求不是很高)將部分接口的結果直接緩存到Redis中。在整合Redis的時候,我們前后嘗試了兩種
SpringBoot項目,最簡單的與Redis集成可以直接使用@
做J2EE應用的時候,如果只是單個應用使用,就把jar文件放在WEB-INFlib文件夾下。如果您想一起使用多個應用程序,請將它們放在服務器上。在lib目錄中(或者把路徑放在系統的classpath變量中),比如tomcat放在安裝目錄的lib文件夾中。