再び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标签