micro-mvc框架,藉助nhmicro框架和groovy技術使所有的controller、servicebean、dao和sql腳本都支持動態熱部署和調試。
Controller層
Controller層groovy中使用註解MicroUrlMapping設置url地址
類上的註解必須有並作爲根路徑
各個方法中設置子路徑
比如下面的groovy中test方法可以調用url爲/testController/test
方法參數固定爲HttpServletRequest request, HttpServletResponse response
@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的調用過程並設置url
@MicroUrlMapping(name="/delInfo")
public void delInfo(HttpServletRequest httpRequest, HttpServletResponse httpResponse){
super.delInfo(httpRequest, httpResponse);
}
Service層
建議將service功能和controller層功能融合在同一個groovy中實現。如果一定要分出service層groovy,
又不願意用GroovyExecUtil顯示調用。可通過註解InjectGroovy注入service層groovy的代理接口對象。
加載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更靈活的數據庫操作。