AresFrameworkAresFramework,实现 IOC、AOP 和 MVC 框架

联合创作 · 2023-09-30 04:53

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";
}

}
浏览 18
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报