Tahun lalu, saya memiliki sedikit pemahaman tentang betapa nyaman dan cepat Springboot dikembangkan di berbagai saluran. Tapi saya tidak belajar keras saat itu. Lagi pula, saya merasa bahwa saya tidak terlalu mahir dalam Struts dan SpringMVC. Namun, setelah membaca banyak perkenalan tentang Springboot, itu tidak sesulit yang saya kira, jadi saya mulai bersiap untuk belajar Springboot. Di waktu luang saya, setelah membaca Springboot Combat aktual dan blog Masters tentang Springboot, saya mulai menulis proyek Springboot pertama saya. Setelah mampu menerapkan fungsi CRUD di Springboot dengan beberapa pengembangan sederhana antarmuka bergaya Restful, posting blog ini dibuat.
Pengantar Springboot
Spring Boot adalah kerangka kerja baru yang disediakan oleh tim penting. Ini dirancang untuk menyederhanakan proses konstruksi dan pengembangan awal aplikasi musim semi baru. Kerangka kerja menggunakan cara tertentu untuk mengonfigurasinya, sehingga pengembang tidak perlu lagi mendefinisikan konfigurasi boilerplate.
Sederhananya, Anda dapat dengan cepat mengembangkan proyek hanya dengan beberapa stoples dan beberapa konfigurasi sederhana.
Jika saya hanya ingin mengembangkan antarmuka eksternal, maka saya hanya perlu kode berikut.
Program utama memulai Springboot
@SpringbootApplicationPublic Class Application {public static void main (string [] args) {springApplication.run (application.class, args); }}Lapisan kontrol
@RestControllerPublic Class HelloWorldController {@RequestMapping ("/Hello") Public String Index () {return "Hello World"; }}Setelah berhasil memulai program utama, tulis lapisan kontrol, lalu masukkan http: // localhost: 8080 // halo di browser untuk melihat informasi.
Saya merasa bahwa menggunakan Springboot untuk mengembangkan program sangat sederhana!
Dalam kata -kata praktis Springboot:
Tidak ada konfigurasi di sini, tidak ada web.xml, tidak ada instruksi build, dan bahkan tidak ada server aplikasi, tapi itu seluruh aplikasi. Springboot akan melakukan semua logistik yang diperlukan untuk menjalankan aplikasi, dan Anda hanya perlu mendapatkan kode aplikasi.
Kembangkan layanan yang tenang berdasarkan Springboot
Sebelum mengembangkan program, Anda harus membuat beberapa persiapan
Buat database `springboot`; gunakan` springboot`; tabel drop jika ada `t_user`; buat tabel` t_user` (`id` int (11) bukan null auto_increment komentar 'id',` name` varchar (10) default null 'name', `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` `` Auto_increment = 12 charset default = utf8;
Jar springboot paling inti
Spring-boot-starter: Modul inti, termasuk dukungan konfigurasi otomatis, penebangan dan YAML;
<partent> <groupid> org.springframework.boot </groupid> <ArtifactId> Spring-boot-starter-parent </artifactid> <version> 1.5.9.release </version> <relativePath/> </induse> <pro properties.build.sourenceencoding> utf-8 </Parentp.build.build.sourenceencoding> utf-8 </prouct.build.sourcoding> uTF-8 </Parent. <Java.Version> 1.7 </java.version> <mybatis-spring-boot> 1.2.0 </sybatis-spring-boot> <mysql-connector> 5.1.39 </ygring-connector> </Properties> <gandendency> <dependency> <groupid> <groupdfr. <ArTifactId> Spring-Boot-starter-web </t Artifactid> </gandendency> <dependency> <Groupid> org.springframework.boot </sroupid> <ArtifactId> <tempel-boot-starter-thymeleaf </arttifactid> </dependency> <depgendency> <groupding> <groupding> <ArTifactId> Spring-Boot-starter-Data-JPa </artifactid> </gandendency> <dependency> <Groupid> org.springframework.boot </groupid> <ArTifactId> Spring-Boot-DevTools </StiFacTID> <POPTIONAL> true </opsional> </Depgerency> </arttifactid> <posional> true </opsional> </Depgerency> </arttifactid> <posional> true </opsional> </dependency> <GroupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-starter-test </arttifactid> <scope> test </seupope> </dependency> <!-Spring Boot Mybatis Dependency-> <groupid> org.mybatis.spring.oots.batot </Dependency> <groupid> org.mybatis.spring.oots.Batot </Dependency> <ArTifactId> mybatis-spring-boot-starter </artifactid> <version> $ {mybatis-spring-boot} </version> </gandendency> <!-ketergantungan driver koneksi mysql-> <grouptid> mysql </groupid> <Arttifactid> mysql-conn-connector> mysql </groupid> <ArTtifactid> mysql-conn-connector <Version> $ {MySQL-Connector} </version> </gandendency> </dependency> <build> <dlugin> <!-Gunakan plug-in springboot untuk menggunakan aplikasi modul Spring-Boot-DevTools. Ketika file di ClassPath berubah, itu akan secara otomatis restart! -> <Plugin> <GroupId> org.springframework.boot </groupid> <ArTifactId> spring-boot-maven-plugin </t Artifactid> <onfigururation> <fork> true </torks> </configuration> </lugin> </lugin> </build> com.pancm.web - Lapisan pengontrol
com.pancm.dao - Lapisan Operasi Data DAO
com.pancm.bean - kelas entitas
com.pancm.bean.service - Lapisan logika bisnis
Aplikasi - Kelas Startup Aplikasi
Application.Properties - File Konfigurasi Aplikasi, konfigurasi akan secara otomatis dibaca oleh startup aplikasi
Secara umum, kami memerlukan beberapa konfigurasi khusus, seperti mengonfigurasi konfigurasi koneksi JDBC, di mana kami dapat menggunakan application.properties untuk mengonfigurasinya. Konfigurasi aktual sumber data harus tunduk pada semua orang.
Konfigurasi Sumber Data ## spring.datasource.url = jdbc: mysql: // localhost: 3306/springboot? useunicode = true & characterencoding = utf8spring.datasource.username = rootspring.dataSource.password = 123456spring.dataSource.datasource.password = 123456spring.dataSource.driver MyBatis Configuration# Configure sebagai com.pancm.bean titik ke jalur paket kelas entitas. mybatis.typealiSespackage = com.pancm.bean# Konfigurasikan paket mapper di bawah jalur classpath, * berarti semua file XML akan dipindai. mybatis.mapperlocations = classpath/: mapper/*. xml
Sudah hampir waktunya untuk datang ke kode kunci.
Kami mulai dengan menulis kelas Pojo, sesuai dengan tabel T_USER di database.
Kodenya adalah sebagai berikut
pengguna kelas publik { / ** Nomor* / private int id; / ** Nama*/ nama string privat; / ** Usia*/ Usia int pribadi; pengguna publik () {} pengguna kelas publik { / ** Nomor* / private int id; / ** Nama*/ nama string privat; / ** Usia*/ Usia int pribadi; Pengguna publik () {} // Getter and Setter dihilangkan}Di lapisan DAO sebelumnya, baik Hibernate dan Mybatis dapat menggunakan anotasi atau file konfigurasi mapper. Di sini kami menggunakan JPA Spring untuk menyelesaikan CRUD.
menjelaskan:
Umumnya ada dua cara untuk mengimplementasikan implementasi CRUD dan database:
Yang pertama adalah konfigurasi mapper XML.
Tipe kedua adalah menggunakan anotasi, @insert, @select, @update, @delete dan anotasi lainnya. Artikel ini menggunakan tipe kedua
impor org.apache.ibatis.annotations.delete; impor org.apache.ibatis.annotations.insert; impor org.apache.ibatis.annotations.mapper; impor org.apache.ibatis.annotations.Result; impor org.apache.ibatis.annotations.Results; org.apache.iatis.annotations.update; impor org.springframework.data.repository.query.param; import com.pancm.bean.user; @mapperpublic antarmuka Userdao { / *** Nilai -nilai pengguna) ditambahkan* / @insert ("Sisipkan ke t_user (id, name, name { / ** Nilai) ditambahkan* / @insert (" masukkan ke t_user, name, name, name { / ** Nilai) ditambahkan* / @insert ("masukkan ke t_user, name, name, name { / ** Nilai) ditambahkan* / @insert (" masukkan ke t_user, name, name, name { / ** Nilai) ditambahkan* / @insert ("masukkan ke t_user (id ne, name { / ** (#{id},#{name},#{usia}) ") void addUser (pengguna pengguna); / *** Modifikasi Data Pengguna*/ @Update ("Perbarui T_USER SET NAME =#{Name}, usia =#{usia} di mana id =#{id}") void updateAser (pengguna pengguna); / *** Penghapusan Data Pengguna*/ @Delete ("Hapus dari T_USER WHERE ID =#{id}") void deleteUser (int id); / *** Permintaan informasi pengguna berdasarkan nama pengguna**/ @select ("Pilih id, nama, usia dari T_USER") // Hasil peta pengembalian @Results (@Result (properti = "id", kolom = "id"), @result (property = "name", kolom = "name"), @result (properti = "usia", usia ", Column"), Column "), @Result (Propert =" Column "), @ReSult (Kolom", Kolom "), @ReSult (Kolom = Nama pengguna string); / *** Permintaan informasi pengguna berdasarkan ID pengguna**/ @Select ("Pilih ID, Nama, Usia dari T_USER") Pengguna FindById (@param ("id") int userId); / *** Permintaan informasi pengguna berdasarkan usia pengguna*/ @select ("Pilih ID, Nama, Usia dari T_USER WHERE UMAH = #{userage}") pengguna FindByage (int userage);}Pemahaman pribadi tentang anotasi yang digunakan oleh antarmuka ini:
Mapper: Menambahkan anotasi ini ke antarmuka untuk menunjukkan bahwa antarmuka ini adalah crud yang diimplementasikan berdasarkan anotasi.
Hasil: Set hasil peta yang dikembalikan, properti mewakili bidang kelas pengguna, dan kolom mewakili bidang dari database yang sesuai.
Param: Bidang untuk kondisi SQL.
Sisipkan, pilih, perbarui, hapus: rekrut, modifikasi, dan hapus database yang sesuai.
Ini pada dasarnya sama dengan Hibernate dan Mybatis.
Kodenya adalah sebagai berikut:
antarmuka
Impor com.pancm.bean.user;/**** Judul: Userservice* Deskripsi: Antarmuka pengguna* Versi: 1.0.0* @author pancm* @date 9 Januari 2018*/Antarmuka publik Userservice {/*** Pengguna* @param pengguna* @return*/boolean adduser (pengguna); / ** * Ubah Pengguna * @param pengguna * @return */ Boolean UpdateAser (pengguna pengguna); / ** * hapus pengguna * @param id * @return */ boolean deleteUser (int id); / *** Permintaan informasi pengguna berdasarkan nama pengguna* nama pengguna @param*/ pengguna findUserbyName (string username); / *** Permintaan informasi pengguna berdasarkan ID pengguna* @param userid*/ user findUserbyId (int userid); / *** Permintaan Informasi Pengguna Berdasarkan ID Pengguna* @param Userage*/ User findUserbyage (int userage);}Kelas Implementasi
Impor org.springframework.beans.factory.annotation.Autowired; impor org.springframework.stereotype.service; impor com.pancm.bean.user; impor com.pancm.dao.userdao; dampak com.pancm.service.userservice; * @Author pancm* @Date 9 Januari 2018*/ @ServicePublic UserserServiceImpl mengimplementasikan UserserService {@Autowired private userdao userdao; @Override public boolean adduser (pengguna pengguna) {boolean flag = false; coba {userdao.adduser (user); bendera = true; } catch (Exception e) {E.PrintStackTrace (); } mengembalikan bendera; } @Override Public Boolean UpdateAser (pengguna pengguna) {boolean flag = false; coba {userdao.updateUser (user); bendera = true; } catch (Exception e) {E.PrintStackTrace (); } mengembalikan bendera; } @Override public boolean deleteUser (int id) {boolean flag = false; coba {userdao.deleteUser (id); bendera = true; } catch (Exception e) {E.PrintStackTrace (); } mengembalikan bendera; } @Override pengguna publik findUserbyName (string username) {return userdao.findbyname (nama pengguna); } @Override pengguna publik findUserbyId (int userId) {return userdao.findbyId (userId); } @Override pengguna publik findUserByage (int userage) {return userdao.findbyage (userage); }}Lapisan kontrol sangat mirip dengan SpringMVC, tetapi jauh lebih sederhana dari itu.
Pemahaman pribadi saya tentang anotasi tentang lapisan kontrol adalah sebagai berikut:
RestController: Metode di kelas default akan dikembalikan dalam format JSON.
RequestMapping: Konfigurasi jalur antarmuka.
Metode: Format permintaan.
RequestParam: Parameter permintaan.
Implementasi spesifik adalah sebagai berikut:
import 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.RequestParam;import org.springframework.web.bind.annotation.RestController; import com.pancm.bean.user; import com.pancm.service.userservice;/**** Judul: USERRESTCONTROLLER* DESKRIPSI:* Antarmuka Operasi Data Pengguna* Versi: 1.0.0. "/API/USER") kelas publik USERRESTCONTROLLER {@Autowired Private UserService UserService; @RequestMapping (value = "/addUser", Method = requestMethod.post) public boolean adduser (pengguna pengguna) {System.out.println ("Mulai tambahkan ..."); return userservice.adduser (pengguna); } @RequestMapping (value = "/updateUser", Method = requestMethod.put) Public Boolean UpdateAser (pengguna pengguna) {System.out.println ("Mulai perbarui ..."); return userservice.updateuser (pengguna); } @RequestMapping (value = "/deleteUser", method = requestMethod.delete) public boolean delete (@RequestParam (value = "username", wajib = true) int userid) {System.out.println ("Mulai hapus ..."); return userservice.deleteUser (userid); } @RequestMapping (value = "/username", method = requestMethod.get) pengguna publik findByUserName (@RequestParam (value = "username", wajib = true) string username) {system.out.println ("Mulai kueri ..."); return userservice.finduserbyname (nama pengguna); } @RequestMapping (value = "/userId", Method = requestMethod.get) Pengguna publik FindByUserId (@RequestParam (value = "userId", wajib = true) int userid) {System.out.println ("Mulai kueri ..."); return userservice.finduserbyId (userid); } @RequestMapping (value = "/userage", Method = requestMethod.get) Pengguna publik FindByUserage (@RequestParam (value = "userage", wajib = true) int userage) {System.out.println ("Mulai kueri ..."); return userservice.finduserbyId (userage); }}SpringApplication adalah kelas yang digunakan untuk memulai aplikasi musim semi dari metode utama.
Secara default, ia melakukan langkah -langkah berikut:
1. Buat contoh ApplicationContext yang sesuai (tergantung pada ClassPath).
2. Daftarkan CommandLinepropertySource untuk menggunakan parameter baris perintah sebagai properti pegas.
3. Segarkan konteks aplikasi dan muat semua kacang singleton.
4. Aktifkan semua Commandlinerner Beans.
Mulai kelas ini secara langsung menggunakan Main, dan Springboot akan secara otomatis mengonfigurasinya.
PS: Bahkan sekarang saya masih berpikir ini benar -benar luar biasa.
Beberapa anotasi untuk kelas ini dijelaskan. :
SpringbootApplication: Nyalakan pemindaian komponen dan konfigurasi otomatis.
Mapperscan: Konfigurasi Paket Pemindaian Kelas Mapper Antarmuka
Kodenya adalah sebagai berikut:
impor org.mybatis.spring.annotation.mapperscan; impor org.springframework.boot.springapplication; impor org.springframework.boot.Autoconfigure.springbootApplication;/**** Judul: Aplikasi* Deskripsi:* Program Utama Springboot: Springboot Version. 2018*/@springbootApplication@mapperscan ("com.pancm.dao") Aplikasi kelas publik {public static void main (string [] args) {// Mulailah tomcat tertanam dan inisialisasi lingkungan pegas dan komponen pegas springapplication.run (application.class, args); System.out.println ("Program sedang berjalan ..."); }}Setelah kode ditulis, kami melakukan tes kode.
Setelah memulai aplikasi, gunakan alat postman untuk menguji antarmuka.
Hasil tes adalah sebagai berikut:
Hanya satu tes Get and Post yang digunakan di sini. Metode yang sebenarnya telah diuji, tetapi saya merasa tidak perlu menempelkan peta.
Saya menempatkan proyek di github:
https://github.com/xuwujing/springboot
Meringkaskan
Di atas adalah pengantar editor untuk mengembangkan layanan yang tenang berdasarkan springboot untuk mengimplementasikan fungsi menambahkan, menghapus, memodifikasi, dan memeriksa. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!