本人开发的JavaWeb急速框架Blast上线了
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方式启动
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>blast.properties</param-value>
</context-param>
<listener>
<listener-class>tk.tankpao.blast.web.core.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>blast</servlet-name>
<servlet-class>tk.tankpao.blast.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>blast</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
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") 标注切点,支持模糊匹配。
匹配规则
包名#类名#方法名[,]
其中
.. 表示任意多层级包
* 表示模糊匹配
, 分割多种不同路径
本人开发的JavaWeb急速框架Blast上线了的更多相关文章
- JAVA 急速WEB框架Blast-本人开发的JavaWeb急速框架Blast上线了
JAVA 急速WEB框架Blast ——对JavaWeb的学习性框架,参考了spring的实现 ——阅读Blast源码可以快速掌握JavaWeb常用技术和方法论,并付诸实践 Blast 是基于 Jav ...
- Asp.net Mvc模块化开发之分区扩展框架
对于一个企业级项目开发,模块化是非常重要的. 默认Mvc框架的AreaRegistration对模块化开发真的支持很好吗?真的有很多复杂系统在使用默认的分区开发的吗?我相信大部分asp.net的技术团 ...
- 程序员必懂:javaweb三大框架知识点总结
原文链接:http://www.cnblogs.com/SXTkaifa/p/5968631.html javaweb三大框架知识点总结 一.Struts2的总结 1.Struts 2的工作流程,从请 ...
- Android &Swift iOS开发:语言与框架对比
转载自:http://www.infoq.com/cn/articles/from-android-to-swift-ios?utm_campaign=rightbar_v2&utm_sour ...
- javaweb三大框架和MVC设计模式
javaweb三大框架和MVC设计模式 转载,原文请见https://blog.csdn.net/sunpeng19960715/article/details/50890705 一.MVC设计模式 ...
- IOS基于XMPP协议开发--XMPPFramewok框架(一):基础知识
最近蘑菇街团队的TT的开源,使我对im产生了兴趣,然后在网上找到了XMPPFramework进行学习研究, 并写了以下系列教程供大家参考,有写的不对的地方,请大家多多包涵指正. 目录索引 IOS基于X ...
- iOS开发-常用第三方开源框架介绍
iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网 ...
- 转载 javaweb三大框架和MVC设计模式 (自己加拉些内容)
javaweb三大框架和MVC设计模式 一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基 ...
- ASP.NET MVC5 网站开发实践(一) - 项目框架
前几天算是开题了,关于怎么做自己想了很多,但毕竟没做过项目既不知道这些想法有无必要,也不知道能不能实现,不过邓爷爷说过"摸着石头过河"吧.这段时间看了一些博主的文章收获很大,特别是 ...
随机推荐
- SQL Server 2005入门到精通(案例详解)
SQL Server 2005基础应用 一.数据库的基本操作 --创建数据库 create database new_db2 on primary ( name='new.mdf', filena ...
- windows下修改apache并发数
还没有尝试 修改apache的最大连接数,方法如下: 步骤一 先修改 /path/apache/conf/httpd.conf文件. # vi httpd.conf 将“#Include conf/e ...
- db2 数据类型
数据类型: 字符串类型 描述 CHARACTER(n) n bytes定长字符串. n 大于0 不大于255. 默认 1. VARCHAR(n) 变长字符串,最大 n bytes. n大于 0 小于表 ...
- 《疯狂Java讲义》(七)---- 方法
一 方法的参数传递机制 Java方法的参数传递方式只有一种:值传递.就是将实际参数值的副本传入方法内,而参数本身不会受到任何影响. eg. 基本类型的值传递 public class Primitiv ...
- C# Linq to sql 实现 group by 统计多字段 返回多字段
Linq to sql 使用group by 统计多个字段,然后返回多个字段的值,话不多说,直接上例子: where u.fy_no == fy_no orderby u.we_no group u ...
- SQL查询今天、昨天、7天内、30天
今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...
- [html5] 学习笔记-html5增强的页面元素
在 HTML5 中,不仅增加了很多表单中的元素,同时也增加和改良了可以应用在整个页面中的元素.重点包含 figure.figcaption.details.summary.mark.progress. ...
- 编写JQuery插件-3
该了解我们也知道的差不多了,接下来编写我们第一个jq插件吧 封装对象方法的插件 我们编写一个设置和获取颜色的插件,我们需要实现两个功能 1.设置匹配元素的颜色 2.获取匹配元素(元素集合的第一个)的颜 ...
- 文件下载类型__response
response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据. 例如web浏览器就是通过MI ...
- Yii框架上传后展示图片
在视图层index.php展示代码中加入[ 'attribute' => 'file', 'format' => 'raw', 'value' => function($model) ...
