AIOアーキテクチャの完全な発展に基づいてMVCフレームワークsmarthttp

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の
(VI)DEMO源

出典:demo12.solon_aio_http_mvc

おすすめ

転載: www.cnblogs.com/noear/p/12104572.html
おすすめ