# blast **Repository Path**: wzgdxg/blast ## Basic Information - **Project Name**: blast - **Description**: 类spring的JavaWeb快速开发框架 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2017-01-20 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JAVA 急速WEB框架Blast # ##——对JavaWeb的学习性框架,参考了spring的实现## ##——阅读Blast源码可以快速掌握JavaWeb常用技术和方法论,并付诸实践## Blast 是基于 Java 语言的极速 WEB 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 ;) ## 实现功能 ## - IOC 依赖注入 - AOP 面向切面 - 注解支持 ## 样例 ## ###启动Blast容器### 代码方式启动 ApplicationContext.start("tk.tankpao"); Tww tww = (Tww) ApplicationContext.getBean("tww"); Web方式启动 contextConfigLocation blast.properties tk.tankpao.blast.web.core.ContextLoaderListener blast tk.tankpao.blast.web.servlet.DispatcherServlet 1 blast / context-param和ContextLoaderListener启动了Blast容器,可以管理bean和实现AOP。 DispatcherServlet启动了Blast对Web功能的支持。 赋配置文件blast.properties内容: base_package=tk.tankpao,com.wzg views_base_path_prefix=/WEB-INF/page/ views_base_path_suffix=.jsp 其中base_package配置需要扫描的包路径以逗号分割。 views_base_path_prefix配置返回视图的根路径。 views_base_path_suffix配置返回视图文件的后缀。 ###控制器### @RequestMapping(path="/test") @Component(name="testAction") public class TestAction { @ResponseBody @RequestMapping(path="/test1") public User test1(User user, String name, Integer age){ System.out.println("asdasdasdasdasd"); System.out.println("name="+name); System.out.println("age="+age); System.out.println(user); return user; } @RequestMapping(path="/test2") public String test2(){ return "NewFile"; } @RequestMapping(path="/test") 请求映射地址 @Component(name="testAction") 类似spring的Component注解,标注该bean交由Blast管理 @ResponseBody 返回内容转成json 注:控制层方法接收前端请求参数能自动转换成对象。 ##AOP实现## @Aspect @Pointcut(path="tk..core#*w#dd,tk..core#Tww#dd,tk..core#Tw*#dd") public class AspectSetting extends BaseInterceptor{ /* (非 Javadoc) * Description: * @see tk.tankpao.blast.core.aop.BaseInterceptor#beforeRunning(java.lang.Object, java.lang.reflect.Method, java.lang.Object[]) */ @Override public void beforeRunning(Object target, Method method, Object[] args) throws Throwable { System.out.println(); System.out.println(target.getClass().getName() + "." + method.getName()); System.out.println("Interceptor start"); } /* (非 Javadoc) * Description: * @see tk.tankpao.blast.core.aop.BaseInterceptor#afterReturning(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], java.lang.Object) */ @Override public void afterReturning(Object target, Method method, Object[] args, Object returnValue) throws Throwable { System.out.println("Interceptor end"); System.out.println(target.getClass().getName() + "." + method.getName()); System.out.println(); } } 该类为AOP配置类 需集成BaseInterceptor类,按需实现前置beforeRunning和后置afterReturning方法。 Blast支持同一类的多层代理。 @Aspect 标注该类为AOP配置类 @Pointcut(path="tk..core#*w#dd,tk..core#Tww#dd,tk..core#Tw*#*d") 标注切点,支持模糊匹配。 ####匹配规则#### 包名#类名#方法名[,] 其中 ..      表示任意多层级包 \*      表示模糊匹配 ,      分割多种不同路径