zoukankan      html  css  js  c++  java
  • JAVA 急速WEB框架Blast本人开发的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") 标注切点,支持模糊匹配。

    匹配规则

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

    其中

    ..      表示任意多层级包

    *      表示模糊匹配

    ,      分割多种不同路径

  • 相关阅读:
    使用jquery的get,ajax,post三种方式实现ajax效果
    在javascript中Json字符串的解析
    (转)C#发送邮件及附件
    jQuery的combobox绑定失去焦点blur事件
    windows2008R2 x64位架设IIS7.x的支持SQLServer2008的PHP服务器
    PyCharm的几个常用设置
    转: 震惊小伙伴的单行代码 Python篇
    virtualBox安装Ubuntu16.4遇到的问题解决办法
    PHP里面把16进制的图片数据显示在html的img标签上
    转:Python:sitecustomize 和 usercustomize
  • 原文地址:https://www.cnblogs.com/aoeiuv/p/6524589.html
Copyright © 2011-2022 走看看