JAVA 急速WEB框架Blast

——对JavaWeb的学习性框架,参考了spring的实现

——阅读Blast源码可以快速掌握JavaWeb常用技术和方法论,并付诸实践

Blast 是基于 Java 语言的极速 WEB 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级。在拥有Java语言所有优势的同时再拥有ruby、python等动态语言的开发效率!为您节约更多时间,去陪恋人、家人和朋友 ;)

实现功能

  • IOC 依赖注入
  • AOP 面向切面
  • 注解支持

样例

启动Blast容器

代码方式启动

  1. ApplicationContext.start("tk.tankpao");
  2. Tww tww = (Tww) ApplicationContext.getBean("tww");

Web方式启动

  1. <context-param>
  2. <param-name>contextConfigLocation</param-name>
  3. <param-value>blast.properties</param-value>
  4. </context-param>
  5. <listener>
  6. <listener-class>tk.tankpao.blast.web.core.ContextLoaderListener</listener-class>
  7. </listener>
  8. <servlet>
  9. <servlet-name>blast</servlet-name>
  10. <servlet-class>tk.tankpao.blast.web.servlet.DispatcherServlet</servlet-class>
  11. <load-on-startup>1</load-on-startup>
  12. </servlet>
  13. <servlet-mapping>
  14. <servlet-name>blast</servlet-name>
  15. <url-pattern>/</url-pattern>
  16. </servlet-mapping>

context-param和ContextLoaderListener启动了Blast容器,可以管理bean和实现AOP。

DispatcherServlet启动了Blast对Web功能的支持。

赋配置文件blast.properties内容:

  1. base_package=tk.tankpao,com.wzg
  2.  
  3. views_base_path_prefix=/WEB-INF/page/
  4.  
  5. views_base_path_suffix=.jsp

其中base_package配置需要扫描的包路径以逗号分割。

views_base_path_prefix配置返回视图的根路径。

views_base_path_suffix配置返回视图文件的后缀。

控制器

  1. @RequestMapping(path="/test")
  2. @Component(name="testAction")
  3. public class TestAction {
  4.  
  5. @ResponseBody
  6. @RequestMapping(path="/test1")
  7. public User test1(User user, String name, Integer age){
  8. System.out.println("asdasdasdasdasd");
  9. System.out.println("name="+name);
  10. System.out.println("age="+age);
  11. System.out.println(user);
  12. return user;
  13. }
  14.  
  15. @RequestMapping(path="/test2")
  16. public String test2(){
  17.  
  18. return "NewFile";
  19. }

@RequestMapping(path="/test") 请求映射地址

@Component(name="testAction") 类似spring的Component注解,标注该bean交由Blast管理

@ResponseBody 返回内容转成json

注:控制层方法接收前端请求参数能自动转换成对象。

AOP实现

  1. @Aspect
  2. @Pointcut(path="tk..core#*w#dd,tk..core#Tww#dd,tk..core#Tw*#dd")
  3. public class AspectSetting extends BaseInterceptor{
  4.  
  5. /* (非 Javadoc)
  6. * Description:
  7. * @see tk.tankpao.blast.core.aop.BaseInterceptor#beforeRunning(java.lang.Object, java.lang.reflect.Method, java.lang.Object[])
  8. */
  9. @Override
  10. public void beforeRunning(Object target, Method method, Object[] args) throws Throwable {
  11. System.out.println();
  12. System.out.println(target.getClass().getName() + "." + method.getName());
  13. System.out.println("Interceptor start");
  14.  
  15. }
  16.  
  17. /* (非 Javadoc)
  18. * Description:
  19. * @see tk.tankpao.blast.core.aop.BaseInterceptor#afterReturning(java.lang.Object, java.lang.reflect.Method, java.lang.Object[], java.lang.Object)
  20. */
  21. @Override
  22. public void afterReturning(Object target, Method method, Object[] args, Object returnValue) throws Throwable {
  23. System.out.println("Interceptor end");
  24. System.out.println(target.getClass().getName() + "." + method.getName());
  25. System.out.println();
  26. }
  27.  
  28. }

该类为AOP配置类 需集成BaseInterceptor类,按需实现前置beforeRunning和后置afterReturning方法。

Blast支持同一类的多层代理。

@Aspect 标注该类为AOP配置类 @Pointcut(path="tk..core#w#dd,tk..core#Tww#dd,tk..core#Tw#*d") 标注切点,支持模糊匹配。

匹配规则

包名#类名#方法名[,]

其中

..      表示任意多层级包

*      表示模糊匹配

,      分割多种不同路径

本人开发的JavaWeb急速框架Blast上线了的更多相关文章

  1. JAVA 急速WEB框架Blast-本人开发的JavaWeb急速框架Blast上线了

    JAVA 急速WEB框架Blast ——对JavaWeb的学习性框架,参考了spring的实现 ——阅读Blast源码可以快速掌握JavaWeb常用技术和方法论,并付诸实践 Blast 是基于 Jav ...

  2. Asp.net Mvc模块化开发之分区扩展框架

    对于一个企业级项目开发,模块化是非常重要的. 默认Mvc框架的AreaRegistration对模块化开发真的支持很好吗?真的有很多复杂系统在使用默认的分区开发的吗?我相信大部分asp.net的技术团 ...

  3. 程序员必懂:javaweb三大框架知识点总结

    原文链接:http://www.cnblogs.com/SXTkaifa/p/5968631.html javaweb三大框架知识点总结 一.Struts2的总结 1.Struts 2的工作流程,从请 ...

  4. Android &Swift iOS开发:语言与框架对比

    转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...

  5. javaweb三大框架和MVC设计模式

    javaweb三大框架和MVC设计模式 转载,原文请见https://blog.csdn.net/sunpeng19960715/article/details/50890705 一.MVC设计模式 ...

  6. IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识

    最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于X ...

  7. iOS开发-常用第三方开源框架介绍

    iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser        实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...

  8. 转载 javaweb三大框架和MVC设计模式 (自己加拉些内容)

    javaweb三大框架和MVC设计模式 一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基 ...

  9. ASP.NET MVC5 网站开发实践(一) - 项目框架

    前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过"摸着石头过河"吧.这段时间看了一些博主的文章收获很大,特别是 ...

随机推荐

  1. 谱聚类 Spectral Clustering

    转自:http://www.cnblogs.com/wentingtu/archive/2011/12/22/2297426.html 如果说 K-means 和 GMM 这些聚类的方法是古代流行的算 ...

  2. thinkphp 配置项总结

    'URL_PATHINFO_DEPR'=>'-',//修改URL的分隔符 'TMPL_L_DELIM'=>'<{', //修改左定界符 'TMPL_R_DELIM'=>'}&g ...

  3. SVG的a链接

    SVG的a链接: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  4. MyBatis 一级、二级缓存

    一级 默认session就有一级缓存,session有C/U/D操作或者session.clearCache();session.commit();都会清空缓存: 二级在mapper.xml中添加&l ...

  5. HttpURLConnection从网上获取Json数据并解析详解

    HttpURLConnection从网上获取Json数据并解析 1.HttpURLConnection请求数据的步骤 (1)构造一个URL接口地址: URL url = new URL("h ...

  6. CodeForces 327C

    Magic Five Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit  ...

  7. ios NSString拼接方法总结

    NSString* string; // 结果字符串 02 NSString* string1, string2; //已存在的字符串,需要将string1和string2连接起来 03   04 / ...

  8. 蓝桥网试题 java 入门训练 Fibonacci数列

    ---------------------------------------------------------------------------------------------------- ...

  9. css实现页面居中的一种方法

    在网页制作的过程中,为方便读者的阅读,会把网页内容限定在一个较小的方框中,并居中显示,如何实现这一功能呢? 1)把正文放在一个<div>标签中,只要这个标签居中整个网页就居中了. < ...

  10. Leaflet+heatmap实现离线地图加载和热力图应用

    本人博客主页:http://www.cnblogs.com/webbest/ 2017年春节已经过完,新一年的奋斗也刚刚开始.今年要经历的挑战也是大大的...不扯了. 年底前软件项目相对较多,恰巧在年 ...