micro-mvc技術說明

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更靈活的數據庫操做。

相關文章
相關標籤/搜索