Kata pengantar
Saya selalu menggunakan springmvc+mybatis untuk mengembangkan antarmuka back-end. Saya baru saja menganggur. Menurut persyaratan fungsional yang ada, saya menggunakan Springboot+MyBatis untuk menggunakan proyek web sederhana.
Alat yang digunakan
Masalah terpecahkan
1. Cara Membuat Proyek Springboot Dengan Ide
2. Cara Mengkonfigurasi Server, Database, MyBatis, Lihat Parser
3. Cara menggunakan MyBatis Generator untuk secara otomatis menghasilkan kode
4. Cara menggunakan multipart untuk mengunggah file
5. Cara Menggunakan Transaksi Springboot
6. Cara mengemas penempatan tomcat
Gunakan ide untuk membuat proyek springboot
1. Buka Ide, File -> New -> Project, pilih Spring Initiizr, lalu selanjutnya.
2. Modifikasi Ariifact, nama dan paket di bawah ini akan dimodifikasi secara otomatis; Kemasan memiliki dua mode, satu adalah toples dan yang lainnya adalah perang; Karena Springboot hadir dengan Tomcat, proyek ini dapat menjadi toples dan dijalankan secara langsung; Sementara proyek saya yang ada digunakan di Tomcat, saya harus menjadi paket perang; dan kemudian berikutnya.
3. Atur ketergantungan proyek, lalu selanjutnya, buka halaman berikutnya, atur nama proyek, dan klik Finish untuk menyelesaikan.
4. Masukkan proyek
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 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.example </groupid </groupid> </ModelVersion> <groupid> Com.example </Groupcing> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>springbootdemo</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.2.RELEASE</version> <RelativePath/> <!-Pencarian Orangtua dari Repositori-> </parents> <properties> <poject.build.sourceencoding> UTF-8 </project.build.sourceencoding> <poject.outporting.outputenCoding> UTF-8 </project.report.outporing.outputencoding> UTF-8 </project.reporting.outputencoding> JAGERS. </ Properties> <Dependencies> <dependency> <GroupId> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-jdbc </arttifactid> </dependency> <sependency> <RoupDid> org.springframework.boot </groupid> <Artifactid> <RoupTid> org.springframework.boot </groupid> <ArtifAcD> <dependency> <GroupId> org.mybatis.spring.boot </groupid> <ArtifactId> mybatis-spring-boot-starter </t Artifactid> <version> 1.3.2 </version> </Artididency> <Rouptid> org.springframework.boot </groupiD> <RoREGOID> <ROVUROD> <scope> runtime </cope> </dependency> <dependency> <groupid> com.microsoft.sqlServer </sroupid> <ArTifactId> mssql-jdbc </sartifactid> <scope> runtime </seupope> </dependency> <groupt> <groupid> <crouppfr. <ArtifactId> Spring-Boot-starter-tomcat </artifactid> <scope> disediakan </opope> </dependency> <dependency> <groupid> org.springframework.boot </groupid> <t Artifactid> </scope/scope-starter-test </arttifactid </artifactid> <cuppope> <groupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-maven-plugin </artifactid> </lugin> </lugin> </build> </project>
springmvc tanpa file konfigurasi
Dua contoh: 1. Akses permintaan http dan merender halaman 2. Permintaan http mengembalikan string json
-Monfigurasi sumber data dan rendering tampilan
-T hadd tampilan rendering dependensi pom
-Create WelcomeController, Welcome.jsp
Struktur Proyek Baru
application.yml Mengkonfigurasi sumber data dan rendering lihat
# Sumber Data dan Lihat Konfigurasi Musim Semi: DataSource: URL: JDBC: SQLServer: // xx: 1433; DatabaseName = XX Nama pengguna: xx Kata Sandi: xx-class-name: com.microsoft.sqlserver.jdbc.sqlserverriver mvc: lews: jurs: jd-infix.
pom.xml menambahkan ketergantungan tampilan rendering
<!-Gunakan JSP memerlukan dependensi-> <dependency> <Groupid> org.apache.tomcat.embed </proupid> <t Artifactid> tomcat-embed-jasper </arttifactid> <scope> </scopeD> </groupt> <sependency> <grouptid> JAVAX.Servlet </scopeD> </depopeD> <Artact> <groupure>
Buat WelcomeController
Paket com.example.springbootdemo.web; impor com.example.springbootdemo.entity.welcome; import com.example.springbootdemo.response.response; impor org.expringbootdemo.response.response; impor org. org.springframework.web.bind.annotation.requestmapping; impor org.springframework.web.bind.annotation.responseBody; impor org.springframework.web.servlet.modelandview; controller@controller@control@control@control@navapramework. WelcomeController { / *** Kunjungi halaman Welcome.jsp* @return* / @RequestMapping ("WelcomeIndex") Public ModelAndView WelcomeIndex () {ModelAndView mv = new ModelAndView (); MV.SetViewName ("Welcome"); mv.addObject ("name", "xx"); mengembalikan MV; } / *** mengembalikan string json* @return* / @RequestMapping ("getWelcomeInfo") @ResponseBody Respons publik getWelcomeInfo () { / *** data uji* / daftar <endap Weading> sambut = arraylist baru <> (); Selamat Datang W1 = Welcome baru (); w1.setid ("1"); w1.setname ("xx1"); w1.setage (11); w1.setgender ("wanita"); Selamat Datang W2 = Welcome baru (); w2.setid ("2"); w2.setname ("xx2"); w2.setage (22); w2.setgender ("pria"); Welcomes.Add (W1); Welcomes.Add (W2); Respons respons = respons baru (); response.setData (menyambut); response.setRetCode (responseCode.success); response.setRetDesc ("Sukses"); respons pengembalian; }}Buat Welcome.jsp
< %@ page contentType = "text/html; charset = utf-8" bahasa = "java" %> <html> <head> <title> view rendering </iteme> </head> <body> halo, $ {name} </body> </html>Mulai proyek dan akses
http: // localhost: 8080/welcome/getwelcomeInfo
http: // localhost: 8080/welcomeIndex
Secara otomatis menghasilkan kode menggunakan generator mybatis
Digunakan untuk membuat *mapper.xml, model, file DAO untuk tabel
Tambahkan MyBatis Generator untuk secara otomatis menghasilkan plugin kode di pom.xml
<build> <lugin> <lugin> <groupid> org.springframework.boot </plomplapid> <t Artifactid> spring-boot-maven-plugin </arttifactid> </lugin> <!-generator mybatis secara otomatis menghasilkan plug-in-</plugin <groupid> <groupid> org.mybatis. <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <configuration> <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile> <overwrite>true</overwrite> <verbose>true</verbose> </configuration> </lugin> </lugin> </bangun>Tambahkan GeneratorConfig.xml di folder sumber daya/generator yang dikonfigurasi di pom.xml di atas
<? Xml Version = "1.0" encoding = "UTF-8"?> <! Doctype GeneratorConfiguration Public "-// mybatis.org//dtd MyBatis Generator Configuration 1.0 // en" "http://mybatis.org/dtd/mybatis-genercon>" cond- " <!-Driver Database: Pilih paket driver database pada hard disk lokal Anda-> <classpathentry location = "c: /users/.m2/repository/com/microsoft/sqlserver/mssql-jdbc/6.2.2.jre8/mssql-jdbc-6.2. targetRuntime = "mybatis3"> <commentsgenerator> <name properti = "SuppressDate" value = "true"/> <!-apakah akan menghapus komentar yang dihasilkan secara otomatis True: YA: FALSE: TIDAK-> <nama properti = "SuppressAllComments" value = "true"/</commentGenerator> <!-link basis data, Urkon, Urak basis data, User, User, Uskon, Urkon, Urkon, Urak Data, Uskon, Urak Data, User, Urak Data, User, driverclass = "com.microsoft.sqlserver.jdbc.sqlServerDriver" connectionUrl = "jdbc: sqlserver: // xx: 1433; databaseName = xx" userid = "xx" kata sandi = "xx"> </jdbcconection> <JAVICTECEP = "XX" Kata Sandi = "XX"> </jdbcconection> <JAVECRECEP = "xx" value = "false"/> </javatyperesolver> <!-menghasilkan nama paket model dan lokasi-> <javamodelgenerator targetpackage = "com.example.springbootdemo.entity" targetProject = "src/main/java"> <name properti = "enableSUBPACKAGES" value = "" "" "NOVE/" NOME/JAVA "> <Properti name =" enableSUBPACKAGES "value =" "value =" "" "" "" "" name = "a name/java/java"> </javamodelgenerator> <!-Hasilkan nama paket dan lokasi file pemetaan-> <sqlmapgenerator targetPackage = "mybatis" targetProject = "src/main/sumber daya"> <nama properti = "enable-tubpackages" value = "true"/> </sqlmapgenerer> <! type = "xmlmapper" targetPackage = "com.example.springbootdemo.mapper" targetProject = "src/main/java"> <name properti = "enableSubpackages" value = "true"/</javaclientgenerator> <!-tabel yang dihasilkan adalah nama datitas dalam basis DATIBASE DATOBASI PERTANYA Tablename = "xx" domainObjectName = "studentbinding" enableCountByExample = "false" enableupDateByExample = "false" enableDeLeteByExample = "false" EnableTelectByExample = "false" SelectByExampleyId = "false"> </table> </context> </generator configuration>
Gunakan mybatis-generator: menghasilkan di Maven untuk menghasilkan kelas terkait berdasarkan tabel dalam database
Edit Konfigurasi -> Tambah -> Maven
Konfigurasikan mybatis
Tambahkan konfigurasi mybatis di application.yml
# Konfigurasi MyBatis MyBatis: Mapper-Locations: ClassPath*: mybatis/*mapper.xml tipe-aliases-package: com.example.springbootdemo.entity
Tambahkan @Repository ("StudentBindingMapper") Anotasi di StudentBindingMapper.java untuk dipindai
@Repository ("StudentBindingMapper") Antarmuka Publik StudentBindingMapper {}Tambahkan @MappersCan di SpringbootDemoApplication.java
Paket com.example.springbootdemo; impor org.mybatis.spring.annotation.mapperscan; impor org.springframework.boot.springapplication; impor; org.springframework.boot.autoconfigure.springbootApplication;@springbootApplication@mapperscan ("com.example.springbootdemo.mapper") springbootplication {publicpo void main (string [] args) {springapplication. }}Tambahkan Layanan dan Lapisan Pengontrol
Tingkat proyek
Tambahkan StudentBindingService
Paket com.example.springbootdemo.service; import com.example.springbootdemo.entity.studentbinding; impor java.util.list; antarmuka publik StudentBindingService {int deletebyprimarykey (Long ID); Insert int (catatan pengikat siswa); int insertSelective (Studentbinding Record); StudentBinding SelectByPrimaryKey (ID Panjang); Int UpdateByPrimaryKeySelective (StudentBinding Record); Int UpdateByPrimaryKey (Catatan Studentbinding); void validTransaction (Long ID); Daftar <StudentBinding> GetStudentBindByQuery (Rekaman StudentBinding);}Tambahkan StudentBindingServiceImpl
Paket com.example.springbootdemo.service.impl; import com.example.springbootdemo.entity.studentbinding; import com.example.springbootdemo.mapper.studentbindingmapper; impor com.example.springbootdemo.service.studingmapper; org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.service; impor org.springframework.transaction.annotation.transactional; impor java.util.list; @service (value = "studentbindingssactional; @Autowired Private StudentBindingMapper StudentBindingMapper; @Override public int deletebyprimaryKey (ID panjang) {return studentbindingmapper.deletyprimarykey (id); } @Override Public Insert (Rekaman StudentBinding) {return studentBindingMapper.insert (Rekaman); } @Override Public In Sisipan InsertSelective (StudentBinding Record) {return StudentBindingMapper.InSertSelective (Record); } @Override Public StudentBinding SelectByPrimaryKey (Long ID) {return StudentBindingMapper.SelectByPrimaryKey (ID); } @Override Public Int UpdateByPrimaryKeyselective (StudentBinding Record) {return StudentBindingMapper.UpdateByPrimaryKeySelective (Record); } @Override Public Int UpdateByPrimaryKey (Rekaman StudentBinding) {return StudentBindingMapper.UpdateByPrimaryKey (Rekaman); } @Override @transactional public void validTransaction (Long ID) {// Setelah penghapusan, masukkan data ID StudentBindingMapper.DeletyPrimaryKey (ID); Rekaman StudentBinding = StudentBinding baru (); Record.setid (id); StudentBindingMapper.IsertSelective (Record); } @Override Daftar Publik <SurtanBinding> getStudentBindByQuery (Rekaman StudentBinding) {return StudentBindingMapper.getStudentBindByQuery (Rekaman); }}Menambahkan StudentBindingController
Paket com.example.springbootdemo.web; impor com.example.springbootdemo.entity.studentbinding; impor com.example.springbootdemo.response.response; impor com.example.springbootdemo.response.responseDode; com.example.springbootdemo.service.studentbindingService; impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.controller; impor org.springframework.web.annotyping org.springframework.web.bind.annotation.requestparam; impor org.springframework.web.bind.annotation.responseBody; impor org.springframework.web.multipart.multipartfile; impor org.springframework.web.web.multipart.multipartfile; impor org.springframework.webb.web java.io.ioException; import java.util.list;@controller@requestMapping (value = "/studentbind") kelas publik StudentBindingController {@Autowired swastic swasticbindingService StudentBindingService; / ** * Hapus informasi siswa yang terikat sesuai dengan parameter permintaan * @param ID * @return */ @RequestMapping ("DeletebyPrimaryKey") @ResponseBody Respons publik DeletebyPrimaryKey (Long ID) {Response Response = New Response (); if (id == null) {response.setRetCode (responseCode.paramarter_error); response.setRetDesc ("Kesalahan parameter"); respons pengembalian; } coba {StudentBindingService.DeletyPrimaryKey (ID); response.setRetCode (responseCode.success); response.setRetDesc ("DeleteSuccess"); } catch (Exception e) {E.PrintStackTrace (); response.setRetCode (responseCode.failed); response.setRetDesc ("deleteexception"); } return response; } / ** * Tambahkan informasi siswa yang terikat sesuai dengan parameter permintaan * @param Record * @return * / @RequestMapping ("InsertSelective") @ResponseBody Respons publik InsertSelective (StudentBinding Record) {Response Response = New Response (); if (record == null) {response.setRetCode (responseCode.paramarter_error); response.setRetDesc ("Kesalahan parameter"); respons pengembalian; } coba {StudentBindingService.InsertSelective (Record); response.setRetCode (responseCode.success); response.setRetDesc ("tambahkan kesuksesan"); } catch (Exception e) {E.PrintStackTrace (); response.setRetCode (responseCode.failed); response.setRetDesc ("Tambah Pengecualian"); } return response; } / ** * Menurut parameter permintaan, permintaan informasi siswa terikat * @param id * @return * / @RequestMapping ("SelectByPrimaryKey") @ResponseBody Respons Publik SelectByPrimaryKey (Long ID) {Response Response = New Response (); if (id == null) {response.setRetCode (responseCode.paramarter_error); response.setRetDesc ("Kesalahan parameter"); respons pengembalian; } coba {StudentBinding StudentBinding = StudentBindingService.SelectByPrimaryKey (ID); response.setData (studentbinding); response.setRetCode (responseCode.success); response.setretdesc ("kueri sukses"); } catch (Exception e) {E.PrintStackTrace (); response.setRetCode (responseCode.failed); response.setRetDesc ("pengecualian kueri"); } return response; } / ** * Verifikasi apakah anotasi @transaction mudah digunakan * @param id * @return * / @RequestMapping ("validTransaction") @ResponseBody respons publik validTransaction (ID panjang) {respons respons = respons baru (); if (id == null) {response.setRetCode (responseCode.paramarter_error); response.setRetDesc ("Kesalahan parameter"); respons pengembalian; } coba {StudentBindingService.ValidTransaction (ID); response.setRetCode (responseCode.success); } catch (Exception e) {E.PrintStackTrace (); response.setRetCode (responseCode.failed); } return response; }/ *** Render halaman JSP* @Return*/ @RequestMapping ("WelcomeIndex") Model dan WelcomeIf WelcomeIndex () {List <StudentBinding> StudentBindings = StudentBindingService.getStudentBindBindy (StudentBinding ()); // Model.addattribute ("StudentBinding (" StudentBinding) (); ModelAndView mv = new ModelAndView (); MV.SetViewName ("Welcome"); MV.AddObject ("StudentBindings", StudentBindings); mengembalikan MV; } / *** Lompat ke halaman file unggah* @Return* / @RequestMapping ("MultipartIndex") Public String MultipartIndex () {return "Multipart-Index"; }/** * Unggah file ke direktori yang ditentukan * file @param * @return */@RequestMapping ("/unggah") @responseBody unggahan respons publik (@RequestParam ("file") file multipartfile) {respons respons = respons baru (); if (file.isempty ()) {response.setRetCode (responseCode.paramarter_error); response.setRetDesc ("Kesalahan parameter"); respons pengembalian; } coba {string filePath = "d: // ceshi // unggah //"; File dir = file baru (filepath); if (! dir.isdirectory ()) {dir.mkdir (); } String fileoriginalname = file.getoriginalFileName (); File writeFile = file baru (FilePath + FileoriginalName); // Tulis file ke disk file.transferto (writeFile); response.setRetCode (responseCode.success); response.setRetDesc ("diunggah dengan sukses"); } catch (ioException e) {e.printstacktrace (); response.setRetCode (responseCode.failed); response.setRetDesc ("Unggah gagal"); } return response; }}Setelah memulai ulang proyek, Anda dapat mengakses berbagai antarmuka
Transaksi Konfigurasi Springboot
Ada dua cara untuk mengonfigurasi transaksi di Springboot
1. Di pintu masuk Proyek SpringbootDemoApplication.java, tambahkan anotasi @enabletransactionmanagement untuk memulai transaksi
2. Tambahkan anotasi @transactional ke kelas implementasi layanan, maka semua metode kelas dikelola melalui transaksi; Anda juga dapat secara langsung menambahkan anotasi @transactional ke metode kelas implementasi layanan, maka hanya manajemen transaksi yang dilakukan pada metode ini. Ada contoh menambahkan transaksi ke metode dalam kode di atas.
Paket Springboot untuk Penempatan Tomcat
Edit Konfigurasi -> Maven -> Tambah -> Mulai -> Salin Paket Perang -> Tomcat Webapp -> Ubah Nama Paket Perang -> Tomcat Bin -> Startup.bat
Setelah Tomcat dimulai, kunjungi http: // localhost: 8080/springbootdemo/welcome/welcomeIndex untuk verifikasi
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.