轻量级javaweb框架blade,简洁而强大

3
Java 数据库 XML C/C++ Go 17677 次浏览

Blade

javaweb中的瑞士军刀

English

@biezhi on weibo Hex.pm Build Status JDK maven

blade 是一个轻量级,可快速开发的web框架,它内置了IOC管理,拦截器配置,REST API开发等众多主流web特性,集成了模板引擎,缓存插件,数据库操作,邮件发送等常用功能,简洁的源码值得你阅读和学习。如果你喜欢,欢迎Star and Fork!

Blade特性

  • 简洁的MVC & 拦截器
  • REST风格API
  • 注解方式开发
  • 微内核IOC容器
  • 实用工具类
  • 模板引擎支持
  • 支持JDK1.6+
  • 内置Jetty启动
  • 插件扩展机制
  • ...

快速入门

第一步、用maven构建一个webapp,加入blade的依赖,推荐获取最新版本

<dependency>
    <groupId>com.bladejava</groupId>
    <artifactId>blade</artifactId>
    <version>x.x.x</version>
</dependency>

第二步、在web.xml中配置Blade核心过滤器并设置你的初始化类,你也可以不配置(使用jetty启动)

<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <filter>
        <filter-name>BladeFilter</filter-name>
        <filter-class>blade.BladeFilter</filter-class>
        <init-param>
            <param-name>applicationClass</param-name>
            <param-value>blade.sample.App</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>BladeFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

第三步、编写App.java和路由文件,下面是一个示例

public class App extends BladeApplication{

    Logger logger = Logger.getLogger(App.class);
    @Override
    public void init() {
        // 设置路由、拦截器包所在包
        Blade.defaultRoute("blade.sample");
    }

}
@Path
public class Hello {

    @Route("/hello")
    public String hello() {
        System.out.println("hello");
        return "hello.jsp";
    }

    @Route(value = "/post", method = HttpMethod.POST)
    public void post(Request request) {
        String name = request.query("name");
        System.out.println("name = " + name);
    }

    @Route("/users/:name")
    public ModelAndView users(Request request, Response response) {
        System.out.println("users");
        String name = request.pathParam(":name");

        ModelAndView modelAndView = new ModelAndView("users");
        modelAndView.add("name", name);
        return modelAndView;
    }

    @Route("/index")
    public String index(Request request) {
        request.attribute("name", "jack");
        return "index.jsp";
    }

}

OK,这一切看起来多么的简单,查阅使用指南更多现成的例子供你参考:

Blade使用指南 (正在完善中...)

一些例子:http://github.com/bladejava

更新日志

v1.1.2

1. 优化sql2o支持
2. 去除blade-kit无用类
3. 添加邮件支持
4. 添加程序计时支持
5. 添加http网络请求支持

v1.1.0

1. 去除对外公开的多余方法展示
2. 添加`Blade.run()`方式运行jetty
3. 添加`Blade.register()`方法注册bean对象
4. 优化IOC对象管理
5. 优化底层IO
6. 简化插件扩展
7. 拦截器路由匹配分离
8. 修复jetty在多maven环境下运行bug 
9. 添加初始化监听context
10. 优化文件上传
11. 优化路由匹配
12. 添加方法执行监测
13. 添加缓存支持

v1.0.0

第一个稳定版本发布

开源协议

Blade框架基于 Apache2 License

联系我

Mail: biezhi.me#gmail.com

Java交流群: 1013565

请尽量让自己的答案能够对别人有帮助

1个答案

默认排序 按投票排序