micro-mvc框架,藉助nhmicro框架和groovy技術使全部的controller、servicebean、dao和sql腳本都支持動態熱部署和調試。java
Controller層 Controller層groovy中使用註解MicroUrlMapping設置url地址mysql
類上的註解必須有並做爲根路徑spring
各個方法中設置子路徑sql
好比下面的groovy中test方法能夠調用url爲/testController/test數據庫
方法參數固定爲HttpServletRequest request, HttpServletResponse responsemybatis
@MicroUrlMapping(name="/testController") class TestController extends MicroControllerTemplate { public String tableName="micro_test3"; public String getTableName(HttpServletRequest httpRequest){ return tableName; } @MicroUrlMapping(name="/test") public void test(HttpServletRequest request, HttpServletResponse response){
能夠繼承MicroControllerTemplate獲取默認增刪改查功能http接口。但須要在controller中寫明super的調用過程並設置urlmvc
@MicroUrlMapping(name="/delInfo") public void delInfo(HttpServletRequest httpRequest, HttpServletResponse httpResponse){ super.delInfo(httpRequest, httpResponse); }
Service層oracle
建議將service功能和controller層功能融合在同一個groovy中實現。若是必定要分出service層groovy, 又不肯意用GroovyExecUtil顯示調用。可經過註解InjectGroovy注入service層groovy的代理接口對象。app
加載groovy時遇到InjectGroovy註解的成員變量,會自動生成成員接口的代理對象並注入。 代理對象的功能是調用name指定的groovy中與接口同名的方法。框架
@InjectGroovy(name="testGroovy") public ITest test;
若是service層對象是傳統java編寫的,或microdao的mapper對象,能夠使用Resource從spring中註解注入。
@Resource public TestRep testRep;
Aop機制
加載groovy時提供aop代理機制,默認提供事務aop和數據源切換aop 事務aop,可在加載時,識別Transactional註解,實現事務控制。
可自行別寫特定功能代理。
開啓代理須要在groovy的類中設置@MicroAop註解指定代理類
@MicroAop(name=[MicroDefaultLogProxy.class,MicroTMProxy.class,MicroDbProxy.class], property=["","",""]) @MicroUrlMapping(name="/testController") class TestController extends MicroControllerTemplate {
Dao層
MicroDao同時支持mysql和oracle
MicroDao相對mybatis的優勢:
1,sql腳本支持修改後熱部署實時生效。
2,bean與數據庫字段映射關係,經過註解設置到bean中,沒必要在sql腳本中體現。
3,sql腳本支持相似jsp的寫法,且沒必要區分select、update使用不一樣標籤,更加靈活。
4,不須要使用插件,內置支持物理分頁。
5,不須要使用插件,內置支持針對bean的標準增刪改查功能。
6,不須要使用插件,內置支持讀寫分離,分庫分表。
7,針對mysql5.7支持動態字段。
支持mapper、template、非orm三種模式支撐業務系統
1,mapper指,經過掃描接口,運行時自動生成dao實例;
2,template指,經過繼承template標準父類,生成dao子類;
3,非orm指,直接使用microDao實例,能夠執行非orm更靈活的數據庫操做。