当前位置: 首页 > 工具软件 > Xiaomi Rose > 使用案例 >

rose框架

谭奕
2023-12-01

rose是什么?

  • 基于IoC容器 (使用Spring 2.5.6).
  • 收集最佳实践,形成规范和惯例,引导按规范惯例,简便开发.
  • 收集通用功能,形成一些可使用的组件,提高生产效率.
  • 特性的插拔,使用基于组合而非继承的设计.
  • 提供可扩展的点,保持框架的可扩展性.
  • 注重使用简易性的同时,注重内部代码设计和实现.


1. pom.xml中:
添加rose环境最基础的依赖包:
添加一点常见的编译设置:
2.在src/main/webapp/WEB-INF文件夹下建立web.xml:
3.src/main/resources/applicationContext.xml是spring环境的油门,所有包的扫描和启动都在这里定义:
4.
  • 在src/main/java上右键 -> new -> package -> name: com.chen
  • 在com.chen上右键 -> new -> package -> com.chen.controllers [controllers是rose框架默认的加载controller的package name]
  • 在com.chen.controllers上右键 -> new -> class -> HelloController [*Controller是rose框架默认的controller层的class后缀,类的类名必须以“Controller”结尾]
  • 打开HelloController这个类
  • 在public class HelloController添加注解@Path("") [Path注解是rose框架提供的标识每个controller的对外访问时的基础路径]
  • 在HelloController中添加方法
5. 渲染页面并返回
找到web项目中“webapp/views”路径下名叫“comment”的视图文件,比如“comment.jsp”,用这个视图文件来渲染网页结果并返回。

6.rose过滤器?
7.拦截器:拦截器目标是在controller层提供各种在controller执行前、执行后的代码切入,以达到各种可AOP的目标

需要注意几点:

  • 拦截器要放在controllers下(高级用法:打在rose-jar包里,参见5.1)
  • 继承net.paoding.rose.web.ControllerInterceptorAdapter
  • 按照实现的方法名,在controller执行前、中、后执行:
    • before:在controller执行前执行。
    • after:在controller执行中(后)执行,如果一个返回抛出了异常,则不会进来。
    • afterCompletion:在controller执行后执行,不论是否异常,都会进来。
    • isForAction:定义满足某条件的才会被拦截。
  • 上面都讲得差不多了,实际上还有不少地方可以拦截的:
    • isForDispatcher:根据响应的情况判断是否拦截,比如说是正常请求、内部forward、还是include (但是没用过)
    • setPriority:设置一个数字表示拦截优先级,当有多个拦截器时,要精准控制,数字小的内层,大的在外层,在最外层的before方法最先执行,大家都执行完后它的after才最后执行。
    • round:这才是真正的controller执行中执行,不过用得很少。
    • getRequiredAnnotationClass:返回一个Annotation class name,表示这个拦截器只对此Annotation标过的controller才生效。常用。

8.errorhandler:

ErrorHandler的作用

  • 一般来说传统的编程都会到处去try,特别是java里,try来try去的(如果你用erlang一定就知道,已经知道的可能性,怎么能叫异常?都try了还是让它崩了算了。。。)。
  • 如果打开你的项目,每个java文件中的代码都有一堆的try,那这时候就是ErrorHandle上阵的时候了。
  • ErrorHanle致力于:统一捕捉和处理各种异常,可区分对待和返回;统一的出错体验。
  • 非常类似做web开发时的500统一出错页面这样的东东。
9.DAO层:
jade:尽可能减少重复的从db把数据对bean进行装配的过程,统一入口,隔离业务逻辑,方便review。
pom.xml中加入依赖包
applicationContext.xml中增加数据源定义
...?

 类似资料: