第一个Bldae程序

迫不及待要开始了吗?本页提供了一个很好的 Blade Hello World 介绍。

开发启程

创建一个 maven 工程,加入 Blade 依赖:

<dependencies>
        <dependency>
                <groupId>com.bladejava</groupId>
                <artifactId>blade-core</artifactId>
                <version>1.7.2-beta</version>
        </dependency>
        <dependency>
                <groupId>com.bladejava</groupId>
                <artifactId>blade-embed-jetty</artifactId>
                <version>0.1.3</version>
        </dependency>
</dependencies>

创建启动类:

package com.xxx.first;

import static com.blade.Blade.$;

import com.blade.mvc.http.Request;
import com.blade.mvc.http.Response;
import com.blade.mvc.handler.RouteHandler;

public class Application {

        public static void main(String[] args) {
                $().get("/", (request, response) -> {
                        public void handle(Request request, Response response) {
                                response.html("<h1>Hello Blade</h1>");
                        }
                }).start(Application.class);
        }
        
}

我们还需要加一个 log4j 的配置文件,因为 blade 目前默认使用log4j作为日志服务,如果你倾向于其他的也可以配置。

log4j.properties

log4j.rootLogger = info, stdout
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = [hello] %d %-5p [%t] %c | %m%n

将这个文件放在 classpath 下即可,如果你不这么做也不会报错,只是控制台看不到日志输出 :)

ok,现在启动 Application 的main函数你将看:

[hello] 2016-09-07 16:06:14,596 DEBUG [main] com.blade.config.ApplicationConfig | Add Resource: /public
[hello] 2016-09-07 16:06:14,597 DEBUG [main] com.blade.config.ApplicationConfig | Add Resource: /assets
[hello] 2016-09-07 16:06:14,597 DEBUG [main] com.blade.config.ApplicationConfig | Add Resource: /static
[hello] 2016-09-07 16:06:14,601 INFO  [main] com.blade.mvc.route.Routers | Add Route => GET     /
[hello] 2016-09-07 16:06:14,601 INFO  [main] com.blade.kit.base.Config | Load config [classpath:app.properties]
[hello] 2016-09-07 16:06:14,609 INFO  [main] com.blade.kit.base.Config | Load config [classpath:jetty.properties]
[hello] 2016-09-07 16:06:14,625 INFO  [main] org.eclipse.jetty.util.log | Logging initialized 
[hello] 2016-09-07 16:06:14,715 INFO  [main] org.eclipse.jetty.server.Server | jetty-9.2.12.v20150709
[hello] 2016-09-07 16:06:14,886 INFO  [main] com.blade.mvc.DispatcherServlet | jdk.version        => 1.8.0_101
[hello] 2016-09-07 16:06:14,886 INFO  [main] com.blade.mvc.DispatcherServlet | user.dir           => D:\workspace\first-blade-app
[hello] 2016-09-07 16:06:14,886 INFO  [main] com.blade.mvc.DispatcherServlet | java.io.tmpdir     => C:\Users\ADMINI~1\AppData\Local\Temp\
[hello] 2016-09-07 16:06:14,886 INFO  [main] com.blade.mvc.DispatcherServlet | user.timezone      => GMT+08:00
[hello] 2016-09-07 16:06:14,886 INFO  [main] com.blade.mvc.DispatcherServlet | file.encodin       => UTF-8
[hello] 2016-09-07 16:06:14,888 INFO  [main] com.blade.mvc.DispatcherServlet | blade.webroot      => D:\workspace\first-blade-app\target\classes
[hello] 2016-09-07 16:06:14,893 INFO  [main] com.blade.mvc.DispatcherServlet | blade.isDev = true

                 __, _,   _, __, __,
                 |_) |   /_\ | \ |_
                 |_) | , | | |_/ |
                 ~   ~~~ ~ ~ ~   ~~~
                 :: Blade :: (v1.7.2-beta)

[hello] 2016-09-07 16:06:14,896 INFO  [main] com.blade.mvc.DispatcherServlet | Blade initialize successfully, Time elapsed: 10 ms.
[hello] 2016-09-07 16:06:14,896 INFO  [main] org.eclipse.jetty.server.handler.ContextHandler | Started o.e.j.w.WebAppContext{/,file:/D:/workspace/first-blade-app/target/classes/,AVAILABLE}
[hello] 2016-09-07 16:06:14,944 INFO  [main] org.eclipse.jetty.server.ServerConnector | Started ServerConnector{HTTP/1.1}{0.0.0.0:9000}
[hello] 2016-09-07 16:06:14,944 INFO  [main] org.eclipse.jetty.server.Server | Started 
[hello] 2016-09-07 16:06:14,944 INFO  [main] com.blade.embedd.EmbedJettyServer | Blade Server Listen on 0.0.0.0:9000

打开浏览器,输入

wow~ 看起来还不错,这就算走进 Blade 的大门了。

都做了什么?

  1. 首先,我们创建了 Application 类。这个类的是整个程序启动类,它是程序的入口。
  2. 接下来,创建了一个路由,创建的方式是 new RouteHandler
  3. 通过 Response 对象渲染html。
  4. 添加 log4j.properties 日志配置文件
  5. 启动 start 方法

了解更多

以上的描述介绍了这个应用的启动,虽然它看起来很简单,但也是一个基本的 Blade 应用,我们要开始一个完整的web项目会有如下的一些疑问:

  • start方法为什么要传入 Application.class
  • 创建路由还有什么方式?
  • 我想更换日志组件怎么办?
  • 我想使用模板引擎?
  • 配置文件要写在哪里?
  • 如何部署到服务器?

等等一系列的问题,作为框架设计者,已经为大家准备好了,如果你是一个web开发的老手可以看看项目,当然新手直接晋级也是没关系的,因为它非常简单。

在开发的过程中有疑问可以参考文档中的其他解释和查看API基本就可以搞定一切!