序文
私は常にSpringMVC+MyBatisを使用してバックエンドインターフェイスを開発してきました。私は最近アイドル状態になっています。既存の機能要件によると、Springboot+MyBatisを使用して、シンプルなWebプロジェクトを展開しています。
使用されるツール
問題が解決しました
1.アイデアを備えたスプリングブートプロジェクトを作成する方法
2.サーバー、データベース、MyBatis、ビューパーサーの構成方法
3. MyBatisジェネレーターを使用してコードを自動的に生成する方法
4.マルチパートを使用してファイルをアップロードする方法
5.スプリングブートトランザクションの使用方法
6. Tomcatの展開をパッケージ化する方法
アイデアを使用して、スプリングブートプロジェクトを作成します
1.オープンアイデア、ファイル - > new->プロジェクト、Spring Intializrを選択してから次に選択します。
2。ariifactを変更すると、以下の名前とパッケージが自動的に変更されます。パッケージには2つのモードがあり、1つは瓶、もう1つは戦争です。 SpringbootにはTomcatが付属しているため、プロジェクトはjarになり、直接実行できます。私の既存のプロジェクトはTomcatに展開されていますが、戦争パッケージである必要があります。そして次に。
3.プロジェクトの依存関係を設定し、次に次のページに移動し、プロジェクト名を設定し、[完了]をクリックします。
4。プロジェクトに入ります
pom.xml
<?xml version = "1.0" encoding = "utf-8"?> <project xmlns = "http://maven.apache.org/pom/4.0.0" xmlns:xsi = "http://www.w3.org/2001/xmlschema-instance <http://www.w3.org/2001 xsi:schemalocation = "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.0.sdsd"> <modeleversion> 4.0.0 </modelversion> <グループ<バージョン> 0.0.1-snapshot </version> <packaging> war </packaging> <name> springbootdemo </name> <説明> spring boot </description> <parent> <parent> <pringframework.boot </groupid> <artifactid> spring-boot-starter-veriontid </artifactid> <RecationPath/> <! - リポジトリからのlookup parent-> </parent> <properties> <project.build.sourceencoding> utf-8 </project.build.sourceencoding> <project.reporting.outputencoding </properties> <dependencies> <dependency> <groupid> org.springframework.boot </groupid> <artifactid> spring-boot-starter-jdbc </artifactid> </dependency> <ependency> org.springframework.boot </groupid <Dependency> groupId> org.mybatis.spring.boot </groupid> <artifactid> mybatis-spring-boot-starter </artifactid> <バージョン> 1.3.2 </version> </dependency> <依存関係> <groupid> org.springframework.boot < <scope> runtime </scope> </dependency> <dependency> <groupid> com.microsoft.sqlserver </groupid> <artifactid> mssql-jdbc </artifactid> <scope> runtime </scope> </dependency> <redency> <グループ<グループ< <artifactid> spring-boot-starter-tomcat </artifactid> <scope>提供<gripid> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> </plugins> </build> </project>
構成ファイルのないspringMVC
2つの例:1。HTTPリクエストアクセスとページのレンダリング2。HTTPリクエストはjson文字列を返します
- データソースとビューレンダリングを構成します
-POM依存関係のレンダリングを表示します
-create welcomecontroller、welcome.jsp
新しいプロジェクト構造
application.ymlデータソースとビューレンダリングを構成します
#データソースとビュー構成スプリング:dataSource:url:jdbc:sqlserver:// xx:1433; databasename = xx username:xx password:xx driver-class-name:com.microsoft.sqlserver.jdbc.sqlserverdiver mvc:/web-inf/web-inf/views:
pom.xmlはビューレンダリング依存関係を追加します
<! - jspを使用する依存関係 - > <依存関係> groupid> org.apache.tomcat.embed </groupid> <artifactid> tomcat-embed-jasper </scope> </dependency> <sependency> javax.servlet
weltomecontrollerを作成します
パッケージcom.example.springbootdemo.web; import com.example.springbootdemo.entity.welcome; import com.example.springbootdemo.response.response; import com.example.springbootdemo.response.responseCode; org.springframework.web.bind.annotation.requestmapping; Import org.springframework.web.bind.annotation.responsebody; Import org.springframework.web.servlet.modelandview; Import Java.util.Arraylist; Import java.util.util.till.list; welcomecontroller { / *** welcome.jspページにアクセスしてください* @return* / @requestmapping( "welcomeindex")public modelandview welcomeindex(){modelandview mv = new modelandview(); mv.setViewName( "Welcome"); mv.addobject( "name"、 "xx"); MVを返します。 } / *** return json string* @return* / @requestmapping( "getWelcomeInfo")@responsebody public respons getWelcomeNfo(){ / ***テストデータ* /リスト<Welcome> welcomes = new ArrayList <>(); Welcome W1 = new welcome(); w1.setid( "1"); w1.setname( "xx1"); w1.setage(11); w1.setgender( "女性");ウェルカムw2 = new welcome(); w2.setid( "2"); w2.setname( "xx2"); W2.Setage(22); W2.SetGender( "MALE");歓迎。Add(W1);歓迎。Add(W2);応答応答= new Response(); Response.setData(歓迎); Response.setretCode(ResponseCode.Success); Response.setretdesc( "success");返信応答。 }}welcome.jspを作成します
<%@ page contentType = "text/html; charset = utf-8"言語= "java"%> <html> <head> <title>ビューレンダリング</title> </head> <body> hello、$ {name} </body> </html>プロジェクトとアクセスを開始します
http:// localhost:8080/welcome/getwelcomeinfo
http:// localhost:8080/welcome/welcomeindex
MyBatisジェネレーターを使用してコードを自動的に生成します
*mapper.xml、モデル、テーブル用のDAOファイルを作成するために使用されます
mybatisジェネレーターを追加して、pom.xmlでコードプラグインを自動的に生成します
<build> <プラグイン><プラグイン><groupId> org.springframework.boot </groupid> <artifactid> spring-boot-maven-plugin </artifactid> </plugin> <! - mybatisジェネレーターはコードプラグインを自動的に生成します - > <プラグイン<artifactid> mybatis-generator-maven-plugin </artifactid> <version> 1.3.2 </version> <configurationfile> $ {bedingir}/src/main/resources/generator/generatorconfig.xml </configurationfile> </verbose> </configuration> </plugin> </plugins> </build>上記のpom.xmlで構成されたリソース/ジェネレーターフォルダーにgeneratorconfig.xmlを追加
<?xml version = "1.0" encoding = "utf-8"?> <!doctype generatorconfiguration public " - // mybatis.org//dtd mybatisジェネレーター構成1.0 // en" "http://mybatis.org/dtd/mybatis-generator-generator-config_1_0データベースドライバー:ローカルハードディスクでデータベースドライバーパッケージを選択します - > <classpathentry location = "c:/users/.m2/repository/com/microsoft/sqlserver/mssql-jdbc/6.2.2.2.2.2.jre8/msssql-jdbbc-6.2.2.2.jre8.jar = <db2t"> < TargetRuntime = "mybatis3"> <commentgenerator> <プロパティ名= "suppressdate" value = "true"/> <! - 自動生成されたコメントを削除するかどうか真:はい:false:no-> <property name = "suppressallcomments" value = "true"/> </compentgenerator> <! driverclass = "com.microsoft.sqlserver.jdbc.sqlserverdriver" connectionurl = "jdbc:sqlserver:// xx:1433; databasename = xx" userid = "xx"パスワード= "xx"> </jdbccnection value = "false"/> </javatyperesolver> <! - モデルパッケージ名と場所を生成 - > <javamodelgenerator targetpackage = "com.example.springbootdemo.entity" TargetProject = "src/main/java"> <propertial name = "enableBackages" "frue"/"/>> </javamodelgenerator> <! - マッピングファイルのパッケージ名と場所を生成 - > <sqlmapgenerator targetpackage = "mybatis" stargentproject = "src/main/resources"> <プロパティ名= <javaclientGenerator Type = "xmlmapper" targetpackage = "com.example.springbootdemo.mapper" stargeproject = "src/main/java"> <プロパティ名= "enableubpackages" value = "true"/> </javaclientorator> < domainobjectNameはエンティティクラス名 - > <table tableName = "xx" domainobjectname = "enablecountbyexample =" false "enabableupdatebyexample =" false "enableSeletebyexample =" false "enableSectbyexample =" selectbyexamplequeryid = "fals
MyBatis-Generatorを使用:Mavenで生成して、データベースのテーブルに基づいて関連するクラスを作成します
構成を編集 - > add-> maven
MyBatisを構成します
application.ymlにmybatis構成を追加します
#mybatis構成mybatis:mapper-locations:classpath*:mybatis/*mapper.xmlタイプ - アリアスパッケージ:com.example.springbootdemo.entity
@Repository( "StudentBindingMapper")を追加します
@Repository( "StudentBindingMapper")Public Interface StudentBindingMapper {}springbootdemoApplication.javaに@mapperscanを追加します
パッケージcom.example.springbootdemo; Import org.mybatis.spring.annotation.mapperscan; Import org.springframework.boot.springApplication; Import org.springframework.boot.autoconfigure.springbootapplication;@springbootapplication@mapperscan( "com.example.springbootdemo.mapper")public class springbootdemoapplication {public static boid main(string [] args){spring application.run(spring.run) }}サービスとコントローラーのレイヤーを追加します
プロジェクトレベル
StudentBindingServiceを追加します
パッケージcom.example.springbootdemo.service;インポートcom.example.springbootdemo.entity.studentbinding; import java.util.list; public interface sustentbindingservice {int deletebyprimarykey(long id); int insert(学生バインディングレコード); Int InsertSelective(StudentBinding Record);学生バインディングSelectByPrimaryKey(LONG ID); int updatebyPrimaryKeyselective(学生バインディングレコード); int updateByPrimaryKey(StudentBinding Record); void validTransaction(long id);リスト<StudentBinding> GetStudentBindByQuery(StudentBinding Record);}StudentBindingServiceImplを追加します
パッケージcom.example.springbootdemo.service.impl; import com.example.springbootdemo.entity.studentbinding; import com.example.springbootdemo.mapper.studentbindingmapper; import com.example.example.springbootdemo.Service.StudentBindingservice; org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.service; import.springframework.transaction.annotation.transactional; import java.util.list; @service = "desultserviceimprestivingservice")パブリッククラスの学生団@Autowired Private StudentBindingMapper StudentBindingMapper; @Override public int deleteByPrimaryKey(long id){return StudentBindingMapper.DeleteByPrimaryKey(ID); } @Override public int insert(StudentBinding Record){return StudentBindingMapper.Insert(record); } @Override public int insertSeective(StudentBinding Record){return StudentBindingMapper.InsertSelective(Record); } @Override Public StudentBinding SelectByPrimaryKey(LONG ID){retund StudentBindingMapper.SelectByPrimaryKey(ID); } @Override public int updatebyPrimaryKeySelective(StudentBinding Record){retundents dustentbindingMapper.updateByPrimaryKeySelective(record); } @Override public int updateByPrimaryKey(StudentBinding Record){retundents dustentbindingMapper.updateByPrimaryKey(Record); } @Override @Transactional public void validTransaction(long id){//削除後、ID sustentbindingMapper.deleteByPrimaryKey(ID)のデータを挿入します。 StudentBinding Record = new StudentBinding(); Record.SetID(ID); StudentBindingMapper.INSERTSEECTIVE(RECORD); } @Override public List <StudentBinding> getStudentBindByQuery(StudentBinding Record){retundents StudentBindingMapper.GetStudEntBindByQuery(Record); }}StudentBindingControllerを追加しました
パッケージcom.example.springbootdemo.web; import com.example.springbootdemo.entity.studentbinding; import com.example.springbootdemo.response.response; import com.example.springbootdemo.response.responsecode;インポートcom.example.springbootdemo.service.studentbindingservice; Import org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.controller; Import org.springframework.web.bind.annotation.Requestmapping; Import springframework.web.bind.annotation.RequestParam; Import org.springframework.web.bind.annotation.responsebody; Import org.springframework.web.web.multipartfile; Import org.springframework.web.modelwwork.servlete java.io.ioexception; Import java.util.list;@controller@requestmapping(value = "/sustentbind")Public Class StudentBindingController {@Autowired Private StudentBindingService StudentBindingService; / ** *リクエストパラメーターに従ってバインドされた学生情報を削除 * @param id * @return */ @RequestMapping( "DeleteByPrimaryKey")@ResponseBodyパブリック応答if(id == null){respons.setretcode(respondecode.paramarter_error); Response.setretdesc( "パラメーターエラー");返信応答。 } try {StudentBindingService.DeleteByPrimaryKey(ID); Response.setretCode(ResponseCode.Success); Response.setretdesc( "deletesuccess"); } catch(Exception e){e.printstacktrace(); Response.setretCode(ResponseCode.Failed); Response.setretdesc( "DeleteException"); }返信応答; } / ** *リクエストパラメーターに従ってバインドされた学生情報を追加 * @param Record * @return * / @RequestMapping( "InsertSelective")@ResponseBody public ResponseSectionection(StudentBinding Record){Response Response = new Response(); if(record == null){respons.setretCode(respondecode.paramarter_error); Response.setretdesc( "パラメーターエラー");返信応答。 } try {StudentBindingService.InsertSelective(record); Response.setretCode(ResponseCode.Success); Response.setretdesc( "add success"); } catch(Exception e){e.printstacktrace(); Response.setretCode(ResponseCode.Failed); Response.setretdesc( "例外を追加"); }返信応答; } / ** *リクエストパラメーターに従って、バインドされた学生情報 * @param id * @return * / @RequestMapping( "SelectByPrimaryKey")@responseBoybution public Response selectbyprimarykey(long id){response response = new Response(); if(id == null){respons.setretcode(respondecode.paramarter_error); Response.setretdesc( "パラメーターエラー");返信応答。 } try {StudentBinding StudentBinding = StudentBindingService.SelectByPrimaryKey(ID); Response.SetData(StudentBinding); Response.setretCode(ResponseCode.Success); Response.setretdesc( "Query Success"); } catch(Exception e){e.printstacktrace(); Response.setretCode(ResponseCode.Failed); Response.setretdesc( "クエリ例外"); }返信応答; } / ** * @Transaction Annotationが使いやすいかどうかを確認 * @Param ID * @return * / @RequestMapping( "validTransaction")@ResponseBody public Response validTransaction(long id){response response = new Response(); if(id == null){respons.setretcode(respondecode.paramarter_error); Response.setretdesc( "パラメーターエラー");返信応答。 } try {studentbindingservice.validTransaction(id); Response.setretCode(ResponseCode.Success); } catch(Exception e){e.printstacktrace(); Response.setretCode(ResponseCode.Failed); }返信応答; }/ *** render jsp page* @return*/ @requestmapping( "welcomeindex")public modelandview welcomeindex(){list <sudtentbinding> sustentBindingservice.getStudentBindbyquery(new StudentBinding(); // Model.Addattribution( "、suduentbindings"、sustentbindings); ModelAndView MV = new ModelAndView(); mv.setViewName( "Welcome"); MV.AddoBject( "StudentBindings"、StudentBindings); MVを返します。 } / ***ファイルページのアップロードにジャンプ* @return* / @requestMapping( "multipartindex")public string multipartindex(){return "multipart-index"; }/** *ファイルを指定されたディレクトリにアップロードします * @paramファイル * @return */@RequestMapping( "/upload")@responsebody public Response upload(@requestparam( "file")multipartfile file){response response = new Response(); if(file.isempty()){respons.setretCode(respondecode.paramarter_error); Response.setretdesc( "パラメーターエラー");返信応答。 } try {string filepath = "d:// ceshi // upload //";ファイルdir = new file(filepath); if(!dir.isdirectory()){dir.mkdir(); } string fileoriginalName = file.getoriginalFileName(); file writefile = new file(filepath + fileoriginalName); //ファイルをDisk file.transferto(writefile)に書き込みます。 Response.setretCode(ResponseCode.Success); Response.setretdesc( "アップロードされた"); } catch(ioexception e){e.printstacktrace(); Response.setretCode(ResponseCode.Failed); Response.setretdesc( "アップロード障害"); }返信応答; }}プロジェクトを再起動した後、さまざまなインターフェイスにアクセスできます
スプリングブート構成トランザクション
スプリングブートでトランザクションを構成する方法は2つあります
1。SpringBootDemoApplication.javaプロジェクトの入り
2. @TransactionAl Annotationをサービス実装クラスに追加すると、クラスのすべての方法がトランザクションを通じて管理されます。また、サービス実装クラスメソッドに@transactionalアノテーションを直接追加することもできます。この方法では、トランザクション管理のみが実行されます。上記のコードにメソッドにトランザクションを追加する例があります。
Tomcat展開用のスプリングブートパッケージ
編集構成 - > maven-> add-> start-> war package-> tomcat webapp-> warパッケージの名前を変更 - > tomcat bin-> startup.bat
Tomcatが開始されたら、http:// localhost:8080/springbootdemo/welcome/welcomeindexにアクセスしてください
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。