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更灵活的数据库操做。

相关文章
相关标签/搜索