nutz-spring-boot-starterNutz 的 Spring Boot 啟動器
概述
nutz-spring-boot-starter 是提供在 spring-boot 環(huán)境下使用 nutz 相關(guān)功能的插件,使用 spring-boot auto configuration 機制實現(xiàn),引入 jar 即可使用。so easy!?。?/p>
功能
提供在spring-boot環(huán)境下使用Nutz的一組啟動器,包含但不限于以下功能:
- nutz-dao集成
- 自動注入nutz-dao
- 提供nutz-dao的sqlmanager支持
- 提供nutz-dao的sqltpl支持
- 提供自動DDL的支持
- BaseService支持
- nutz-json支持
- nutz.cn 內(nèi)網(wǎng)穿透福利ngrok的支持
開始使用
使用之前請確保熟悉使用 spring-boot 進行項目開發(fā),本文檔僅限于 nutz-spring-boot-starter 插件的相關(guān)描述,如有 spring-boot 相關(guān)問題請查閱 https://spring.io/projects/spring-boot 。
依賴添加
nutz-spring-boot-starter release 版本已發(fā)布至 maven 中央倉庫,使用 maven 進行依賴管理請?zhí)砑尤缦乱蕾囆畔ⅲ?/p>
<dependency> <groupId>org.nutz</groupId> <artifactId>nutz-spring-boot-starter</artifactId> <version>2.2.3.RELEASE</version> </dependency>
snapshot 版本發(fā)布至 https://jfrog.nutz.cn/artifactory/snapshots, 如需使用請?zhí)砑尤缦聜}庫設(shè)置內(nèi)容:
<repositories> <repository> <id>nutz</id> <url>https://jfrog.nutz.cn/artifactory/jcenter</url> </repository> <repository> <id>nutz-snapshots</id> <url>https://jfrog.nutz.cn/artifactory/snapshots</url> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> </repositories>
使用其他依賴管理工具請根據(jù) maven 配置進行調(diào)整。
使用 dao
引入 jar 包在配置了數(shù)據(jù)源的前提下將自動注入 Dao 對象,nutz-dao 的具體使用請參考 https://www.nutzam.com
配置
使用過程中可以對 nutz-dao 的自動建表和變更、自定義 sql 和 sql template 相關(guān)信息進行定制化配置,具體參照下文詳細說明。
自動建表
自動建表和變更是 nutz 提供的自動 ddl 功能,解決在開發(fā)過程中數(shù)據(jù)表頻繁表更導致代碼和數(shù)據(jù)庫定義的頻繁更改問題。因可能進行字段刪除等相關(guān)操作導致數(shù)據(jù)丟失,建議在生成環(huán)境禁用相關(guān)功能。相關(guān)配置項目詳細說明如下:
nutz: dao: runtime: create: true #是否自動建表 默認true migration: true #是否自動變更 默認true add-column: true # 是否添加列 默認true delete-column: true # 是否刪除列 默認true foce-create: false # 是否刪表重建,注意此功能會刪除全部表及數(shù)據(jù),一般應用于demo或測試 默認false check-index: true # 是否檢查索引 默認true basepackage: # 相關(guān)實體所在包 - org.nutz.demo.bean
根據(jù) nutz 官方描述,相關(guān)包下配置了@Table 注解的實體均會自動創(chuàng)建表,自動建表有以下局限性:
- 不生成外鍵,我們也不推薦用外鍵
- 只能解決一般建表需求,復雜的表結(jié)構(gòu)請通過自定義 sql 完成
- 由于 spring-boot 資源掃描原因,如打包后使用需要在包名配置前加上 BOOT-INF.classes.
自定義 sql
Nutz.Dao 提供了大多數(shù)簡單的操作,在 80%以上的情況下,你并不需要編寫 SQL,因為 Nutz.Dao 會自動替你 生成可以使用的 SQL。但是,在某些特殊的情況下,尤其是考慮到效率等問題,直接寫作 SQL 仍然是程序員們 的一個殺手锏,有了這個殺手锏,程序員們永遠可以針對任何數(shù)據(jù)庫做他們想要的任何操作。
nutz-dao 默認掃描 sqls 目錄下的全部.sql/.sqls/.sqlx 文件相關(guān),自定義配置及說明如下:
nutz: dao: sql-manager: mode: file #自定義sql管理模式 file和xml paths: # 自定義sql文件路徑 - sqls
sql template
sql template 是使用模版引擎在 nutz-dao 的自定義 sql 相關(guān)參數(shù)注入之前對原始 sql 進行處理的機制,能實現(xiàn)類似 mybatis 的動態(tài) sql 效果。目前內(nèi)置支持 BEETL、 FREEMARKER、JETBRICK 和 VELOCITY 四種模版引擎。
使用前需要自行引入相關(guān)模板引擎依賴,同時不提供對模板引擎本身的任何配置支持。相關(guān)配置及說明如下:
nutz: dao: sql-template: enable: true #是否啟用 默認false type: beetl #模板引擎類型,默認beetl
使用 json
json 支持是使用 nutz-json 對 spring-mvc HttpMessageConverter 擴展實現(xiàn)對象序列化和反序列化的的功能,相關(guān)功能默認啟用。
定制 json
使用過程中可以對 json 格式進行自定義,相關(guān)配置說明如下:
nutz: json: enabled: true #是否啟用,默認true mode: compact #json模式,默認compact ignore-null: true # 是否忽略空對象 compact: true # 是否啟用壓縮模式 date-format: yyyy-MM-dd Hh????ss # 日期格式化 ... #更多相關(guān)配置參照ide提示進行即可
使用 ngrok
ngrok 是由 https://nutz.cn 提供的內(nèi)網(wǎng)穿透支持,可以用于本地項目的演示或者類似微信開發(fā)類公網(wǎng)接口的調(diào)試。相關(guān)配置如下:
nutz: ngrok: port: 8080 #代理的本地端口,默認使用server.port信息 token: abcdef #ngrok token 請到 https://nutz.cn 申請
支持和維護
相關(guān)技術(shù)支持請聯(lián)系作者:kerbores#gmail.com
