`

整理下rose

阅读更多

用rose框架有几个月了,觉得没有系统整理过,就参考别人的自己重新整理下。

参考网址:http://www.54chen.com/rose.html

 

一、关于rose

初始化:

 

Tomcat启动时,会读取配置文件,进行服务的初始化工作 

 

而对于rose,会进行两个主要的初始化工作:

 

一个是:对于各个要使用的Bean进行实例化。包括controller、dao等

 

 另一个是:构建匹配树。这是rose解析用户请求并进行匹配处理的基础 

 

 

 

rose框架里面包含的思想:

 

 资源封装:对底层资源的封装,开发者不用考虑servlet实现,doget\dopost,数据库连接等底层实现,可以更加专注于业务逻辑的分析和处理

 

 分层设计:rose框架本身就包含了分层的概念,资源封装,通过提供接口

 

       我们在开发的时候也应该注意分层的概念,合理设计。页面,controller,service,jade层间设计与关联

 

 匹配机制:rose匹配树,实际为所定义的controller URL树。客户请求及响应实为与相关的controller间的交互 

 

 

 

Rose运行机制:

 

Rose解析客户的请求地址,从匹配树中寻找匹配的controller

 

寻找到相匹配的controller,如若存在拦截器注解,则还会先进行拦截器的处理,然后再传给controller

 

如果在匹配树中无法再到相匹配的controller,则会返回404的错误 

 

 

 

 IOC、依赖注入概念:

 

基本概念:程序运行过程中,当需要用到相关的对象时,动态的注入该对象,来执行对象方法,改变对象属性。

 

具体怎么实例化这个对象,对象生命周期的管理等,均由框架来自动管理

 

 而Rose提供了非常便利的@ 注解使用方式,让开发者可以方便的使用相关的类及类方法 

 

 这里的IOC概念,我觉得其实是对java垃圾回收的延伸

 

因为有垃圾回收的特性,才能够使对象生命周期的自动管理得以实现

 

  

 

小结:Rose框架本身维护着一个主‘进程/线程’,在初始化阶段会实例化相关的对象。

 

然后运行过程通过对客户端请求地址的解析,调用相匹配的对象方法进行处理,而这部分的实现代码则由框架进行封装维护,开发者只需要根据业务开发实现相关功能的类即可(封装)。如果不进行总结的话,估计也就是知道请求的对应处理action和返回页面。

 

二、rose搭建项目。

基础配置三步走:

用maven创建一个新项目,然后配置基础的rose架构。

1 填写基础pom文件,添加基础的依赖包,添加编译设置。

2  松离合:必不可少的web.xml

3  踩油门:applicationContext.xml(spring环境)

 

基础开发的注意事件:

1  通过使用@Path @Get @Post可以对controller类的url地址进行设置

2  参数获取:@Param 参数的方式来获取提交的数据,或者可以在方法中通过getParameter的方法来获取,项目中直接用@Param来获取。地址中可以携带参数;地址中增加 正则表达式被大括号"{}"包围,格式为“{ paramName : regularExpression }”,只有请求的URI能被正则表达式匹配时,这是提取地址中直接携带参数的形式。

3 返回:1>返回页面直接是依据字符串匹配页面文件名(返回字符串可以不包含文件后缀名);2>返回字符串用以“@”开头的字符串,比如“return "@HelloWorld";3>返回json,以“@json:”开头的字符串。4>重定向,以“r:”开头的字符串,比如“return "r:/aaa";”,等效于调用“javax.servlet.http.HttpServletResponse.sendRedirect("/aaa")”,将执行301跳转。以“a:”开头的字符串,比如“return "a:/bbb";”,将会携带参数再次匹配roseTree,找到controller中某个方法并执行,相当于“javax.servlet.RequestDispatcher.forward(request, response)”。

 

小结:有以上基本配置,就能完成一个web应用的基础流程。关于rose还应该了解拦截器

 

三、拦截器

 

拦截器目标是在controller层提供各种在controller执行前、执行后的代码切入,以达到各种可AOP的目标。

面向切面编程(AOP)方法可以让一个项目更加关注核心逻辑,常见的一些最佳实践包括(权限、缓存、错误处理、延时加载、调试、持久化、资源池)

简单地说,拦截器能干的事情就是当你的项目写了一半时发现缺少啥全局要做的事情(比如需要验证权限),不用担心,搞一个拦截器就是了。

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics