第一个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 的大门了。
都做了什么?
- 首先,我们创建了
Application
类。这个类的是整个程序启动类,它是程序的入口。 - 接下来,创建了一个路由,创建的方式是
new RouteHandler
。 - 通过
Response
对象渲染html。 - 添加
log4j.properties
日志配置文件 - 启动
start
方法
了解更多
以上的描述介绍了这个应用的启动,虽然它看起来很简单,但也是一个基本的 Blade 应用,我们要开始一个完整的web项目会有如下的一些疑问:
- start方法为什么要传入
Application.class
? - 创建路由还有什么方式?
- 我想更换日志组件怎么办?
- 我想使用模板引擎?
- 配置文件要写在哪里?
- 如何部署到服务器?
等等一系列的问题,作为框架设计者,已经为大家准备好了,如果你是一个web开发的老手可以看看项目,当然新手直接晋级也是没关系的,因为它非常简单。
在开发的过程中有疑问可以参考文档中的其他解释和查看API基本就可以搞定一切!