springboot 2研究ノート:Webプロジェクトをビルドします

再びspringboot学習時には、プロジェクトを構築するためのアーキテクチャ主導型のアプローチの使用は、参照することによって作成されたプロジェクトは、Mavenを理解します

以下のようなプロジェクトとサブプロジェクトを作成し、依存性のレベルを追加し、プロジェクトが構成されています。

共通:ツール;マッパー:永続;サービス:サービス層;ウェブ:制御層;モデル:エンティティクラス

そして、依存親プロジェクトを追加します。

<?xml version = "1.0"エンコード= "UTF-8"?> 
<プロジェクトのxmlns = "http://maven.apache.org/POM/4.0.0" 
         のxmlnsを:XSI = "のhttp://www.w3 .ORG / 2001 / XMLスキーマ・インスタンス」
         のxsi:のschemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion> 4.0.0 </ modelVersion> 

    <のgroupId> com.zs.springboot </のgroupId> 
    <たartifactId> springboot817 </たartifactId> 
    <パッケージ> POM </包装> 
    <バージョン> 1.0-SNAPSHOT </バージョン> 
    <モジュール> 
        <モジュール>モデル</モジュール> 
        <モジュール>サービス</モジュール> 
        <モジュール>マッパー</モジュール> 
        <モジュール>ウェブ</モジュール>  
        <モジュール>共通</モジュール>
    </モジュール>

    <dependencyManagement> 
        <依存性> 
            <! -将springboot-親以ジャー包的形式导入进来、声明类型为ポンポン文件- > 
            <依存> 
                <groupIdを> org.springframework.boot </ groupIdを> 
                <たartifactId> spring-ブートスタータ親</たartifactId> 
                <バージョン> 1.5.22.RELEASE </バージョン> 
                <タイプ> POM </タイプ> 
            </依存関係> 
            <依存> 
                <groupIdを> org.springframework.boot </ groupIdを> 
                <たartifactId >春・ブート・スターター・ウェブ</たartifactId> 
                <バージョン> 1.5.22.RELEASE </バージョン>
            </依存関係> 
            <依存>
                <のgroupId> org.mybatis.spring.boot </のgroupId> 
                <たartifactId> MyBatisのスプリングブートスタータ</たartifactId> 
                <バージョン> 1.3.1 </バージョン> 
            </依存> 
            <依存性> 
                <のgroupId> MySQLの< /のgroupId> 
                <たartifactId>のmysql-コネクタ-javaの</たartifactId> 
                <バージョン> 5.1.45 </バージョン> 
            </依存関係> 
            <依存> 
                <groupIdを> org.springframework.boot </ groupIdを> 
                <たartifactId>春ブート-starter-thymeleaf </たartifactId> 
                <バージョン> 1.5.22.RELEASE </バージョン> 
            </依存関係> 
        </依存関係> 
    </ dependencyManagement> 


</プロジェクト>
親ポンポン

その後、各サブプロジェクトのレベルに依存する、マッパー依存モデルに追加し、サービスマッパーは、一般的に、コントローラ依存サービスを依存しています。

コントローラは、サービスは、すべてのマッパーので、マッパーモジュールにジャーを持つことができるようにするので、関係の階層的依存、制御装置によれば、サービスは、JARパッケージを使用することができます。

<依存性> 
        <依存性> 
            <のgroupId> org.springframework.boot </のgroupId> 
            <たartifactId>ばねブートスタータ親</たartifactId> 
            <タイプ> POM </ type>の
        </依存> 
        <依存性> 
            <のgroupId> org.springframework.boot </ groupIdを> 
            <たartifactId>春・ブート・スターター・ウェブ</たartifactId> 
        </依存関係> 
        <依存> 
            <groupIdを> org.mybatis.spring.boot </ groupIdを> 
            <たartifactId> MyBatisのバネ-bootスタータ</たartifactId> 
        </依存> 
        <依存性>
            <groupIdを> mysqlの</ groupIdを>
            <たartifactId>のmysql-コネクタ-javaの</たartifactId> 
        </依存関係> 

        <依存> 
            <groupIdを> com.zs.springboot </ groupIdを> 
            <たartifactId>モデル</たartifactId> 
            <バージョン> 1.0-SNAPSHOT </バージョン> 
        < /依存関係> 
    </依存関係>
コードの表示

springboot構成MVC

ときSSMフレームワークの設定ファイルはXMLファイルを使用して編集されていますが、目指すspringboot前にそれを使用する方法、Javaのクラスコンフィギュレーションを使用してXMLファイルを取り除くことですか?

まず、我々は、XML構成を見て前に:

< MVC:注釈駆動型> 
        < MVC:メッセージ・コンバータ> 
            <! - 配置编码字符集- > 
            < 豆のクラス= "org.springframework.http.converter.StringHttpMessageConverter" > 
                < コンストラクタ、引数= "defaultCharset" = "UTF-8" /> 
            </ > 
            <! - 格式化JSON - > 
            < 豆のクラス= "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" > 
                < プロパティ= "prettyPrint"= "true"を/>
            </ ビーン> 
        </ MVC:メッセージ・コンバータ> 
    </ MVC:アノテーション駆動型>

次のように構成されたJavaを使用して上記コンテンツ:

/ ** 
 *この宣言は、設定ファイル
 * / 
@SpringBootConfiguration 
パブリック クラスSpringMvcConfig { 

    / ** 
     *設定符号化された文字セットがUTF-8である、豆の豆タグがxmlファイルを対応@ 
     * @Bean( "AAA")にIDのAAAとしてタグ
     * @return 
     * / 
    @Bean 
    公共StringHttpMessageConverter stringHttpMessageConverter(){ 
        StringHttpMessageConverterコンバータ = 新しい新しい StringHttpMessageConverter(Charset.forName( "UTF-8" ));
         戻りコンバータ; 
    } 

    / ** 
     * JSONデータ・フォーマットの
     * @return 
     * / 
    @Bean 
    公衆MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){ 
        MappingJackson2HttpMessageConverterコンバータ = 新しいMappingJackson2HttpMessageConverter()。
        converter.setPrettyPrint(真の);
        リターン・コンバータ; 
    } 
}

効果:

Firefoxは自動的にJSONデータ形式になるためのFirefoxは、生データを確認してください

mapper.xmlの形で実装するマッパーインターフェイス

でapplication.propertiesに設定する必要があります:

エイリアスを配置することはできません 
。mybatis.type -パッケージ-別名= com.zs.springboot モデル
 #のXML設定ファイルのパス 
マッパー:mybatis.mapper-場所のCLASSPATH = / * .xmlファイル

コンフィギュレーション・マッパースキャナ:

@Mapperコメントを追加しますが、インタフェースは、より多くの、そして、各インターフェイス1インターフェイスに追加しなければならない場合

2.入口マッパークラスに直接スキャナを追加します。

Thymeleafの書き込みページを使用します

springboot公式サイトでは、それを明確にあなたがアーキテクチャとしてspringbootを使用する場合は、JSPの設定を手動でロードすることができます達成JSPを使用しなければならない場合、デフォルトは、JSPをサポートしていないと判断。

springboot默认支持Thymeleaf模板,这个模板也是java写的,使用非常方便,相当于jsp

注意:1.使用thymeleaf模板的话,在开发阶段需要关闭缓存

#配置thymeleaf关闭缓存
spring.thymeleaf.cache=false

2.添加依赖:springboot已经完整把thymeleaf集成进框架中了,可以直接添加使用不需要任何的配置信息

        <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-thymeleaf</artifactId>
                <version>1.5.22.RELEASE</version>
            </dependency>    

3.在之前使用jsp,需要在mvc配置文件中配置视图解析器,添加前缀后缀等, 在使用thymeleaf模板的html页面的情况下,默认在resources(相当于classpath)下的templates文件夹中进行加载,不需要配置

4.如果使用thymeleaf需要更换html的头部信息:

<html xmlns="http://www.w3.org/1999/xhtml"
              xmlns:th="http://www.thymeleaf.org"
              xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">

5.thymeleaf是一个非常严谨的模板,和普通的html不一样,需要严格按照html的标准来实现:不能出现未闭合标签,如果不按照html的标准会报错

如果非要不遵循标准来也可以,需要在application.properties中配置: spring.thymeleaf.mode=LEGACYHTML5 导入jar包:

        <dependency>
                <groupId>net.sourceforge.nekohtml</groupId>
                <artifactId>nekohtml</artifactId>
                <version>1.9.21</version>
            </dependency>    

下面写thymeleaf使用例子:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>
<table border="1px solid black">
    <thead>
        <tr>
            <th>编号</th>
            <th>图书名</th>
            <th>价格</th>
            <th>类别</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
    <tr th:each="book : ${books}">
        <td th:text="${book.id}"></td>
        <td th:text="${book.title}"></td>
        <td th:text="${book.price}"></td>
        <td th:text="${book.cateId}"></td>
        <td>
            <a href="">修改</a>
            <a href="">删除</a>
        </td>
    </tr>
    </tbody>
</table>
</body>
</html>

th:each就相当于是jstl的c:forEach标签

 

おすすめ

転載: www.cnblogs.com/Zs-book1/p/11367776.html