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";
	}
	
}
浏览 6
点赞
评论
收藏
分享

手机扫一扫分享

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

手机扫一扫分享

编辑 分享
举报