SSH2フレームワーク

近年ではSpringMVCの開発は比較的急速である、彼の利点はゆっくりと現れており、さらに多くの企業がSpringMVC代替SSHフレームワークを必要とし、最終的にそれらのSpringMVC差があり、それは作るのですか?

何SpringMVCフレームワーク?

 

スプリングフレームワークは、高度に設定可能であり、複数のビューの技術、例えばのJavaServer Pages(JSP)技術、速度、タイル、iTextの、及びPOI。あなたが選択したビューをカスタマイズすることができますので、Spring MVCのフレームワークは、使用の見解を知りません。Spring MVCの分離コントローラ、モデルオブジェクトと同様に、ディスパッチャ役割ハンドラオブジェクト、このような分離は、カスタマイズしやすいようにします。

SpringMVCは、その実装完全に私は春が一番だと思うのMVCを知りたい初心者や人々のためのバリエーションやMVCフレームワークのシステムに基づいていない典型的な教科書のMVCフレームワークではなく、支柱などであります教科書です!それは純粋なサーブレットシステムであるように、第2及びタペストリー、これはそれとタペストリーが比較され、支柱は、利点を持っていません。フレームとコード自体、及びそれが理解しやすいようです。

 

何SSH2フレームワーク?

 

4層からの責任のシステムフレームワークにSSH:ヘルプの開発者へのプレゼンテーション層、ビジネスロジック、データの永続化層とドメイン層モジュールは、短期的には明確な構造を構築し、優れた再利用性も、Webアプリケーションを維持しやすいです。ジャンプへのビジネスの制御、MVC、Strutsフレームワークのモデル部分の分離を担当する、システム全体のインフラとしてのStrutsを使用して、使用Hibernateフレームワークは、永続化層のためのサポートを提供し、春には管理、経営ストラットを行い、休止状態。具体的には:オブジェクト指向分析法のニーズに基づいて、いくつかのモデルを作り、これらのモデルは、次に基本的なDAOを書き込むオブジェクト基本的なJavaとして実装するインターフェイスを(データアクセスオブジェクト)、およびDAO Hibernateの実装を与える、Hibernateフレームワークを使用することは、達成しますDAOクラスのJavaクラスとデータベースへのアクセスとの間の変換を実施し、最終的に春によって管理、管理ストラットを行い、休止状態にします。

 

SpringMVCとSSHの比較:

支柱の機能のより包括的なパッケージ、比較的独特の使用。近いネイティブサーブレット、高い柔軟性にspringmvc。しかし、また、コントローラは、単一のspringmvcの実施形態、およびフィルターの無い多数、Struts2のよりも優れた性能であるため。

もう一つのポイントは、春には、SQL文の元の生態を実行するために使用される独自のJdbcTemplate、持っているということです。

以下のような:

。1
2
3
4
5。
@Transactional
クリック(文字列ID){整数公共
    jdbcTemplate.update(ID "UPDATEのSETのCOUNT = COUNT +コンテンツ1 WHERE ID =?");
    WHERE ID =コンテンツから復帰jdbcTemplate.queryForInt(「SELECT COUNT ?」、ID);
}
SSHは、操作がオブジェクトである、データベースHibernateマッピングデータを操作するために使用されます。

以下のような:

。1
2
。3
。4
公共ボイドクリック(ユーザ){
    //更新(ユーザ);
    保存(ユーザ);
}
休止元々 JDBCベースのパッケージ、これより速い操作対象より確実に元のエコSQLの実行効率に比べ。

注:あなたはHibernateの機能を実現するために春を使用したい場合は、パッケージを親友することができます

以下のような:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
    公衆T保存(Tエンティティ){
        フィールド[] declaredFields = entityClass.getDeclaredFields()。
        文字列PK = "";
        (F分野:declaredFields)用{
            ブールannotationPresent = f.isAnnotationPresent(Id.class)。
            IF(annotationPresent){
                PK = f.getName()。
                ブレーク;
            }
        }
        もし(StringUtils.isBlank(PK)){
            方法[] declaredMethods = entityClass.getDeclaredMethods()。
            (方法方法:declaredMethods)用{
                ブールannotationPresent = method.isAnnotationPresent(Id.class)。
                (annotationPresent){場合
                    。Stringフィールド= method.getName()を置き換える( "GET"、 "");
                    //首字母转小写
                    PK = field.replace(field.charAt(0)、(CHAR)(field.charAt(0)+32))。
                    ブレーク;
                }
            }
        }
        マップの<string、オブジェクト>マップ= EntityToMapUtil.convertEntityToMap(エンティティ)
        オブジェクトpkvalue = map.get(PK)。
        IF(pkvalue = NULL && StringUtils.isNotBlank(pkvalue.toString())!){
            更新(MAP、PK)。
            エンティティを返します。
        }
        SimpleJdbcInsert simpleJdbcInsert =新しいSimpleJdbcInsert(jdbcTemplate)。
        キーホルダーキーホルダー= simpleJdbcInsert.withTableName(テーブル())
        //.usingColumns(new文字列[keySet.size()])
        .usingGeneratedKeyColumns(PK)
        .executeAndReturnKeyHolder(マップ)
        試す{
            BeanUtils.setProperty(エンティティ、PK、keyHolder.getKeys()値())。
        }キャッチ(例外e){
            e.printStackTrace();
            ヌルを返します。
        }
        エンティティを返します。
    }
     
    公共ボイド挿入(MAPマップ、文字列... PKS){
        セットの<string>列= map.keySet()。
        用(文字列PK:PKS){
            IF(columns.contains(PK))
                columns.remove(PK)。
        }
        SimpleJdbcInsert simpleJdbcInsert =新しいSimpleJdbcInsert(jdbcTemplate)。
        キーホルダー= simpleJdbcInsert.withTableName Aキーホルダー(表())
        .usingColumns(columns.toArray(新しい新しいString [columns.size()]))
        .usingGeneratedKeyColumns(PKS)
        .executeAndReturnKeyHolder(MAP);
    }  
元のオブジェクトの反射特性を得るために使用されます、その後、対応するデータベースフィールド、そして最終的にSQL文を綴った、気持ちが効率に非常に大きな影響はありません。

 

現在同社は、SpringMVCベースのフレームワークを行うために使用されているが、休止状態を統合していません。最新バージョンはまた、あなたが直接対応するJSONまたはXMLを返すことができ、SpringMVC RestFullをサポートしています。

以下のようなコード:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@RestController
@RequestMapping( "パブリック")
パブリッククラスCommonController {
    @Autowired
    プライベートContentService contentService。
    ( "ViewClick")@RequestMapping
    パブリック文字列をクリック(HttpServletRequestのリクエスト、RequestParam文字列ID @){
        int型のクリック= 0。
        (本){同期
            クリック= contentService.click(ID)。
        }
        戻り"のdocument.write( ' "+クリック+"')"。




1
阅读(<スクリプトSRC = "../パブリック/ ViewClick?ID = $ {content.id}"> </ SCRIPT>)

----------------
免責事項:この記事は、元の記事」webin」CSDNブロガーで、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。 。
オリジナルリンクします。https://blog.csdn.net/swebin/article/details/52583718

おすすめ

転載: www.cnblogs.com/qiu18359243869/p/12602912.html