AIOアーキテクチャの完全な発展に基づいてMVCフレームワークsmarthttp
MVC AIOの「最小限完備していjdkのMVCフレームワークHttpServerをベースの開発」、書き込み記事を書きました
DEMO開始時間:0.1秒は(あまりそれを考慮しなければなりません?)
スマート-HTTP比較的単純なHTTPサーバで、通信コアは、最新のスマートソケットバージョンv1.4.6を使用しています。しかし、フレンドリーなWEBサービスを提供したい、あなたは他の機能の多くを必要とします。
ソロンのフレームワークとの融合によって、MVCは、フレンドリーなサービスとAOPを提供することができるようになります。
- ソロンシェルを達成するためのフレームワークであるMVC、IOC、AOP、注釈、プラグイン機構など。スマート-HTTP上でシェルを入れて、MVCの機能を提供することができるようになります。
- smarthttpは、それがシェルソロンを置くことができることをsmarthttpするようになっている。また、セッション、のようなJSONとして、他のプラグもたらしたソロンの機能を楽しむことができます。
- snack3とJSONシリアライズのサポートを提供するだけでなく、十分に小さい; 1シリアル化フレームワークソロンに適応しています。
- そのテンプレートエンジン未満を見つけるのは難しい楽しんで、そしてまた速い人は泣きたいです。
(A)は、新しい空のプロジェクトのMavenを作成します。
(B)参照Mavenを追加
<dependencies>
<!-- 基于 smart-http 封装的 solon.boot -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.boot.smarthttp</artifactId>
<version>1.0.4</version>
</dependency>
<!-- 一个小巧的JSON框架 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.serialization.snack3</artifactId>
<version>1.0.4</version>
</dependency>
<!-- enjoy模板引擎 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.view.enjoy</artifactId>
<version>1.0.4</version>
</dependency>
<!-- 静态文件支持 -->
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon.extend.staticfiles</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
(C)の追加ファイル
- Java / Webアプリケーション/コントローラ/ HelloworldController.java
- Java / Webアプリケーション/コントローラ/ HomeController.java
- Java / Webアプリケーション/モデル/ UserModel.java
- Java / Webアプリケーション/ウィジェット/ FooterTag.java
- Java / Webアプリケーション/ AioApp.java
- リソース/静的/ jinjin.htm
- リソース/ WEB-INF /ビュー/ helloworld.shtm(shtm、デフォルトの拡張子を楽しむために適合されています)
- //何も設定しません
追加情報:
//资源路径说明(不用配置)
resources/application.properties(或 application.yml) 为应用配置文件
resources/static/ 为静态文件根目标
resources/WEB-INF/view/ 为视图文件根目标(支持多视图共存)
//模板调试模式(或加热加载模式):
启动参数添加:-deubg=1
(D)コード
- Webアプリケーション/ AioApp.java
public class AioApp {
public static void main(String[] args) {
XApp.start(AioApp.class, args);
}
}
- Webアプリケーション/ウィジェット/ FooterTag.java
@XBean("view:footer")
public class FooterTag extends Directive {
@Override
public void exec(Env env, Scope scope, Writer writer) {
StringBuffer sb = new StringBuffer();
sb.append("<footer>");
sb.append("我是自定义标签,FooterTag");
sb.append("</footer>");
try {
writer.write(sb.toString());
}catch (Exception ex){
ex.printStackTrace();
}
}
}
- Webアプリケーション/モデル/ UserModel.java
@Data
public class UserModel {
private long id;
private String name;
private int sex;
private String label;
}
- Webアプリケーション/コントローラ/ HomeController.java
@XController
public class HomeController {
@XMapping(value = "/", produces = "text/html;charset=utf-8")
public String home(){
return "<a href='/helloworld'>/helloworld</a>";
}
}
- Webアプリケーション/コントローラ/ HelloworldController.java
@XController
public class HelloworldController {
@XMapping("/helloworld")
public Object helloworld(){
UserModel m = new UserModel();
m.setId(10);
m.setName("刘之西东");
m.setSex(1);
ModelAndView vm = new ModelAndView("helloworld.shtm");
vm.put("title","demo");
vm.put("message","hello world!");
vm.put("m",m);
return vm;
}
}
- リソース/ WEB-INF /ビュー/ helloworld.shtm
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>#(title)</title>
</head>
<body>
<div>
#(m.name) : #(message) (我想<a href="/jinjin.htm">静静</a>)
</div>
#footer()
</body>
</html>
(E))(AioApp.mainを実行します
- ます。http:ブラウザを開き// localhostを:8080 /
- ブラウザ出力:/ HelloWorldの