昨年、私はさまざまなチャネルでどれほど便利で高速なスプリングブートが開発されたかを少し理解しました。しかし、私はその時点で一生懸命勉強していませんでした。結局のところ、私はストラットとSpringMVCにあまり熟練していないと感じました。しかし、スプリングブートに関する多くの紹介を読んだ後、それは私が思っていたほど難しくなかったので、私はスプリングブートを学ぶ準備を始めました。私の暇なとき、Springbootの実際の戦闘とSpringbootに関するいくつかのマスターのブログを読んだ後、私は最初のSpringbootプロジェクトを書き始めました。 Restfulスタイルのインターフェイスの簡単な開発でSpringbootでCRUD関数を実装できるようになった後、このブログ投稿が作成されました。
スプリングブートの紹介
Spring Bootは、Pivotalチームが提供する新しいフレームワークです。新しいスプリングアプリケーションの初期建設および開発プロセスを簡素化するように設計されています。フレームワークは特定の方法を使用して構成するため、開発者はボイラープレート構成を定義する必要がなくなります。
簡単に言えば、ほんの数個の瓶といくつかの簡単な構成を備えたプロジェクトをすばやく開発できます。
外部インターフェイスを単に開発したい場合は、次のコードのみが必要です。
メインプログラムはスプリングブートを開始します
@springBootApplicationPublic class Application {public static void main(string [] args){springApplication.run(application.class、args); }}制御層
@RestControllerPublic Class HelloWorldController {@RequestMapping( "/hello")public string index(){return "Hello World"; }}メインプログラムを正常に開始した後、コントロールレイヤーを書き、http:// localhost:8080 //ブラウザにHelloを入力して情報を表示します。
Springbootを使用してプログラムを開発するのは非常に簡単だと思います!
Springbootの実用的な言葉:
ここには構成、Web.xml、ビルド命令、アプリケーションサーバーもありませんが、それがアプリケーション全体です。 Springbootは、アプリケーションの実行に必要なすべてのロジスティクスを実行し、アプリケーションのコードを取得するだけです。
スプリングブートに基づいて安らかなサービスを開発します
プログラムを開発する前に、いくつかの準備をする必要があります
データベース「Springboot`;を作成します。「Springboot」;ドロップテーブルが存在する場合は `t_user`;作成テーブル` id`(11)noll auto_incrementコメント 'id' '、 `name` varchar(10)デフォルトnullコメント' name '、 `age = null null null null' age(nin 'age(nin) auto_increment = 12デフォルトのcharset = utf8;
スプリングブートの最もコアジャー
Spring-Boot-Starter:自動構成サポート、ロギング、YAMLを含むコアモジュール。
<parent> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-parent </artifactid> <バージョン> 1.5.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.9.propropties> <project.build.sourceencoding> utf-8 </project.build.sourcoding> <Java.version> 1.7 </java.version> <mybatis-spring-boot> 1.2.0 </mybatis-spring-boot> <mysql-connector> 5.1.39 </mysql-connector> </properties> <dependencies> <seplency> <グループ<グループ< <artifactid> spring-boot-starter-web </artifactid> </dependency> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-themeleaf </artifactid> </dependency> <seplency> <artifactid> spring-boot-starter-data-jpa </artifactid> </dependency> <dependency> groupid> org.springframework.boot </groupid> <artifactid> spring-boot-devtools </artifactid> <optional> optional> optional <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-test </artifactid> <scope> test </scope> </dependency> <! - spring boot mybatis依存関係 - > <依存症> <依存関係> <groupid> org.mybatis.spring.spring.boot </groupid> <Artifactid> mybatis-spring-boot-starter </artifactid> <version> $ {mybatis-spring-boot} </version} </version> </dependency> <! - mysql connectionドライバー依存関係 - > <依存関係> <グループ> mysql </groupid> <artifactid> artifactid> <バージョン> $ {mysql-connector} </version> </dependency> </dependency> <build> <plugins> <! - スプリングブートプラグインを使用して、Spring-Boot-Devtoolsモジュールアプリケーションを使用します。 ClassPathのファイルが変更されると、自動的に再起動します! - > <Plugin> <groupId> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> <configuration> <fork> true </fork> </configuration com.pancm.web-コントローラーレイヤー
com.pancm.dao-データ操作レイヤーDAO
com.pancm.bean-エンティティクラス
com.pancm.bean.service-ビジネスロジックレイヤー
アプリケーション - アプリケーションスタートアップクラス
Application.Properties-アプリケーション構成ファイルでは、アプリケーションスタートアップによって構成が自動的に読み取られます
一般に、JDBCの接続構成の構成など、いくつかのカスタム構成が必要です。ここでは、Application.Propertiesを使用して構成できます。データソースの実際の構成は、すべての人の対象となります。
##データソースの構成spring.datasource.url = jdbc:mysql:// localhost:3306/springboot?useunicode = true&charatereCoding = utf8spring.datasource.username = rootspring.datasource.password = 123456spring.datasOsOS. mybatis configuration#com.pancm.beanとして、エンティティクラスパッケージパスに合わせて構成します。 mybatis.typealiasespackage = com.pancm.bean#クラスパスの下でマッパーパッケージを構成する *は、すべてのXMLファイルがスキャンされることを意味します。 mybatis.mapperlocations = classpath/:mapper/*。xml
主要なコードに来る時がほとんどありません。
データベースのT_USERテーブルに対応するPojoクラスを作成することから始めます。
コードは次のとおりです
パブリッククラスユーザー{ / ** number* / private int id; / **名前*/プライベート文字列名; / ** age*/ private int age; public user(){} public class user { / ** number* / private int id; / **名前*/プライベート文字列名; / ** age*/ private int age; public user(){} // getter and setter省略}前のDAO層では、HibernateとMyBatisの両方が注釈またはマッパー構成ファイルを使用できます。ここでは、SpringのJPAを使用してCrudを完成させます。
説明:
通常、CRUDとデータベースの実装を実装するには2つの方法があります。
1つ目は、XMLのマッパー構成です。
2番目のタイプは、@insert、@select、@update、@delete、その他の注釈を使用することです。この記事では、2番目のタイプを使用しています
org.apache.ibatis.annotations.delete; Import org.apache.ibatis.annotations.insert; Import org.apache.ibatis.annotations.mapper; import org.apache.ibatis.annotations.Result; import org.apache.ibatis.annotations.urg.apache.annotations.ibatis.annotations. org.apache.ibatis.annotations.update; Import org.springframework.data.repository.query.param; Import com.pancm.bean.user; @mapperpublic interface userdao { / ***ユーザーデータの追加(#{id}、#{name}、#{age}) ")void adduser(user user); / ***ユーザーデータの変更*/ @update( "update t_user set name =#{name}、age =#{age} where id =#{id}")void updateUser(user user); / ***ユーザーデータ削除*/ @delete( "delete from t_user where id =#{id}")void deleteuser(int id); / ***ユーザー名に基づくユーザー情報*/ @Select( "Select Id、name、age from t_user")// return Map result set @results({ @result(property = "id"、column = "id")、 @result(property = "name"、column = "name")、@result(property = "age"、column = "age")ユーザー名); / ***ユーザーIDに基づくユーザー情報のクエリ**/ @SELECT( "Select id、name、age from t_user")ユーザーfindbyid(@param( "id")int userid); / ***ユーザーAGEに基づくユーザー情報クエリ*/ @SeLect( "ID、名前、AGE =#{userage}")ユーザーfindbyage(int userage);}このインターフェイスで使用される注釈の個人的な理解:
Mapper:このインターフェイスにこの注釈を追加して、このインターフェイスが注釈に基づいて実装されていることを示します。
結果:返されたマップ結果セット、プロパティはユーザークラスのフィールドを表し、列は対応するデータベースのフィールドを表します。
PARAM:SQL条件のフィールド。
挿入、選択、更新、削除:対応するデータベースをリクルート、変更、削除します。
これは基本的に冬眠やmybatisと同じです。
コードは次のとおりです。
インタフェース
com.pancm.bean.user;/****タイトル:userservice*説明:ユーザーインターフェイス*バージョン:1.0.0* @author pancm* @date 2018*/public interface userservice {/*** @param user* @return*/boolean adduser(user user); / ** *ユーザーの変更 * @paramユーザー * @return */ boolean updetwususer(user user); / ** * delete user * @param id * @return */ boolean deleteuser(int id); / ***ユーザー名に基づくユーザー情報のクエリ* @param username*/ user finduserbyname(string username); / ***ユーザーIDに基づくユーザー情報のクエリ* @Param userId*/ user finduserbyid(int userid); / ***ユーザーIDに基づくユーザー情報クエリ* @paramユーザーは*/ user finduserbyage(int userage);}実装クラス
org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.service; Import com.pancm.bean.user; Import com.pancm.dao.userdao; Import com.pancm.service.userservice; @author pancm* @date 2018年1月9日*/ @servicepublic class userserviceimpl explmess userservice {@autowired private userdao userdao; @Override public boolean adduser(user user){boolean flag = false; try {userdao.adduser(user); flag = true; } catch(Exception e){e.printstacktrace(); } flagを返します。 } @Override public boolean updetwususer(user user){boolean flag = false; try {userdao.updateuser(user); flag = true; } catch(Exception e){e.printstacktrace(); } flagを返します。 } @Override public boolean deleteuser(int id){boolean flag = false; try {userdao.deleteuser(id); flag = true; } catch(Exception e){e.printstacktrace(); } flagを返します。 } @Override public user finduserbyname(string username){return userdao.findbyname(username); } @Override public user finduserbyid(int userid){return userdao.findbyid(userid); } @Override public user finduserbyage(int userage){return userdao.findbyage(userage); }}制御層はSpringMVCに非常に似ていますが、それよりもはるかに簡単です。
制御層に関する注釈についての私の個人的な理解は次のとおりです。
RestController:デフォルトクラスのメソッドはJSON形式で返されます。
リクエストマッピング:インターフェイスパス構成。
方法:リクエスト形式。
RequestParam:リクエストパラメーター。
特定の実装は次のとおりです。
org.springframework.beans.factory.annotation.autowired; import org.springframework.web.bind.annotation.requestmapping; import org.springframework.web.bind.annotation.requestmethod; import org.springframework.web.bind.annotation.RequeSpparam org.springframework.web.bind.annotation.restcontroller; Import com.pancm.bean.user; import com.pancm.service.userservice;/****タイトル:UserrestController*説明:*ユーザーデータ操作インターフェイス*バージョン:1.0.0* @author pancm* @date 1月9、2018* "/api/user")public class userrestcontroller {@autowired private userservice userservice; @RequestMapping(value = "/adduser"、method = requestmethod.post)public boolean adduser(user user){system.out.println( "start of add ..."); return userservice.adduser(user); } @RequestMapping(value = "/updateUser"、method = requestmethod.put)public boolean updetwuser(user user){system.out.println( "start to update ..."); return userservice.updateuser(user); } @RequestMapping(value = "/deleteuser"、method = requestmethod.delete)public boolean delete(@requestparam(value = "username"、requent = true)int userid){system.out.println( "start delete ..."); return userservice.deleteuser(userid); } @RequestMapping(value = "/username"、method = requestmethod.get)public user findbyusername(@requestparam(value = "username"、reby = true)string username){system.out.println( "start query ..."); return userservice.finduserbyname(username); } @RequestMapping(value = "/userId"、method = requestmethod.get)public user findbyuserid(@requestparam(value = "userid"、reby = true)int userid){system.out.println( "start query ..."); return userservice.finduserbyid(userid); } @RequestMapping(value = "/userage"、method = requestmethod.get)public user findbyuserage(@requestparam(value = "userage"、rebys = true)int userage){system.out.println( "start query ..."); return userservice.finduserbyid(userage); }}SpringApplicationは、メインメソッドからスプリングアプリケーションを開始するために使用されるクラスです。
デフォルトでは、次の手順を実行します。
1.適切なApplicationContextインスタンスを作成します(ClassPathに応じて)。
2。コマンドラインプロパティソースを登録して、コマンドラインパラメーターをスプリングプロパティとして使用します。
3.アプリケーションコンテキストを更新し、すべてのシングルトンビーンズをロードします。
4.すべてのCommandLinerunner Beanをアクティブにします。
メインを使用してこのクラスを直接開始すると、Springbootは自動的に構成されます。
PS:今でも私はこれが本当に素晴らしいと思います。
このクラスのいくつかの注釈について説明します。 :
SpringBootApplication:コンポーネントスキャンと自動構成をオンにします。
MapperScan:Mapper Interfaceクラススキャンパッケージの構成
コードは次のとおりです。
org.mybatis.spring.annotation.mapperscan; Import org.springframework.boot.springApplication; Import org.springframework.boot.autoconfigure.springbootapplication;/*******タイトル:アプリケーション* 2018*/@springbootapplication@mapperscan( "com.pancm.dao")public class application {public static void main(string [] args){//埋め込みトムキャットを起動し、スプリング環境とそのスプリングコンポーネントSpringApplication.run(Application.class、args); System.out.println( "プログラムが実行されています..."); }}コードが記述された後、コードテストを実施します。
アプリケーションを開始したら、Postmanツールを使用してインターフェイスをテストします。
テスト結果は次のとおりです。
ここでは、1つの取得とポストテストのみが使用されます。実際の方法はテストされていますが、マップを貼り付ける必要はないと感じています。
プロジェクトをgithubに置きました:
https://github.com/xuwujing/springboot
要約します
上記は、追加、削除、変更、チェックの機能を実装するためのスプリングブートに基づいたRESTFULサービスを開発する編集者の紹介です。私はそれが誰にでも役立つことを願っています。ご質問がある場合は、メッセージを残してください。編集者は、すべての人に時間内に返信します。 wulin.comのウェブサイトへのご支援ありがとうございます!