AresFrameworkAresFramework,实现 IOC、AOP 和 MVC 框架
AresFramework,支持IOC、AOP、MVC功能:
-
IOC:支持Component、Resource、Scope注解,按名-按类型方式注入;
-
AOP:支持Aspect、Pointcut、Order注解,使用JDK动态代理,支持切面排序;
-
MVC:支持Controller、RequestMapping、ResponseData注解,支持普通参数,String数组注入,支持JSP、JSON视图解析。
软件核心类:
-
ResolverLoader、BeanFactory、FactoryBean、Dispatcher、HandlerAdapter、ViewResolver。
代码示例
@Component("Aop")
public class AopImpl implements Aop {
@Resource
private IocComponent ic;
public void aopTest() {
System.out.println("invoke");
}
}
@Aspect
@Order(1)
public class AopInterceptor extends AbstractHandlerInterceptor {
@Override
@Pointcut("frame.test.Aop.aopTest")
public void invokeBefore(Object target, Method method, Object[] args) {
System.out.println("before " + "target " + target.toString() + " method " + method.toString() + " args " + args);
}
@Override
@Pointcut("frame.test.Aop.aopTest")
public void invokeAfter(Object target, Method method, Object[] args) {
System.out.println("after " + "target " + target.toString() + " method " + method.toString() + " args " + args);
}
}
@Controller("/simple")
public class SimpleAction {
@ResponseData("JSON")
@RequestMapping("/json.do")
public String getJson(int id, String name) {
return "{" + id + ", " +name +"}";
}
@RequestMapping("/jsp.do")
@ResponseData("JSP")
@ResponseMapping("/WEB-INF/jsp/hello")
public String getJsp(int id, String name) {
return "{" + id + ", " +name +"}";
}
@RequestMapping("/jsp2.do")
@ResponseData("JSP")
public String getJsp2(int id, String name) {
return "/WEB-INF/jsp/hello";
}
}评论
