溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

micro-mvc框架支撐mvc各層代碼熱部署

發(fā)布時(shí)間:2020-07-11 06:16:12 來源:網(wǎng)絡(luò) 閱讀:796 作者:wb59f817a362984 欄目:軟件技術(shù)

micro-mvc框架,借助nhmicro框架和groovy技術(shù)使所有的controller、servicebean、dao和sql腳本都支持動(dòng)態(tài)熱部署和調(diào)試。

Controller層
Controller層groovy中使用注解MicroUrlMapping設(shè)置url地址

類上的注解必須有并作為根路徑

各個(gè)方法中設(shè)置子路徑

比如下面的groovy中test方法可以調(diào)用url為/testController/test

方法參數(shù)固定為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獲取默認(rèn)增刪改查功能http接口。但需要在controller中寫明super的調(diào)用過程并設(shè)置url

    @MicroUrlMapping(name="/delInfo")
    public void delInfo(HttpServletRequest httpRequest, HttpServletResponse httpResponse){
        super.delInfo(httpRequest, httpResponse);
    }

Service層

建議將service功能和controller層功能融合在同一個(gè)groovy中實(shí)現(xiàn)。如果一定要分出service層groovy,
又不愿意用GroovyExecUtil顯示調(diào)用。可通過注解InjectGroovy注入service層groovy的代理接口對(duì)象。

加載groovy時(shí)遇到InjectGroovy注解的成員變量,會(huì)自動(dòng)生成成員接口的代理對(duì)象并注入。
代理對(duì)象的功能是調(diào)用name指定的groovy中與接口同名的方法。

    @InjectGroovy(name="testGroovy")
    public ITest test;

如果service層對(duì)象是傳統(tǒng)java編寫的,或microdao的mapper對(duì)象,可以使用Resource從spring中注解注入。

    @Resource
    public TestRep testRep;

Aop機(jī)制

加載groovy時(shí)提供aop代理機(jī)制,默認(rèn)提供事務(wù)aop和數(shù)據(jù)源切換aop
事務(wù)aop,可在加載時(shí),識(shí)別Transactional注解,實(shí)現(xiàn)事務(wù)控制。

可自行別寫特定功能代理。

開啟代理需要在groovy的類中設(shè)置@MicroAop注解指定代理類

@MicroAop(name=[MicroDefaultLogProxy.class,MicroTMProxy.class,MicroDbProxy.class], property=["","",""])
@MicroUrlMapping(name="/testController")
class TestController extends MicroControllerTemplate  {  

Dao層

MicroDao同時(shí)支持mysql和oracle

MicroDao相對(duì)mybatis的優(yōu)點(diǎn):

1,sql腳本支持修改后熱部署實(shí)時(shí)生效。

2,bean與數(shù)據(jù)庫字段映射關(guān)系,通過注解設(shè)置到bean中,不必在sql腳本中體現(xiàn)。

3,sql腳本支持類似jsp的寫法,且不必區(qū)分select、update使用不同標(biāo)簽,更加靈活。

4,不需要使用插件,內(nèi)置支持物理分頁。

5,不需要使用插件,內(nèi)置支持針對(duì)bean的標(biāo)準(zhǔn)增刪改查功能。

6,不需要使用插件,內(nèi)置支持讀寫分離,分庫分表。

7,針對(duì)mysql5.7支持動(dòng)態(tài)字段。

支持mapper、template、非orm三種模式支撐業(yè)務(wù)系統(tǒng)

1,mapper指,通過掃描接口,運(yùn)行時(shí)自動(dòng)生成dao實(shí)例;

2,template指,通過繼承template標(biāo)準(zhǔn)父類,生成dao子類;

3,非orm指,直接使用microDao實(shí)例,可以執(zhí)行非orm更靈活的數(shù)據(jù)庫操作。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI