Panduan Pantas untuk Spring Roo

1. Gambaran keseluruhan

Spring Roo adalah alat Pengembangan Aplikasi Cepat (RAD) yang bertujuan untuk memberikan hasil yang cepat dan cepat yang difokuskan pada aplikasi web Spring dan teknologi Spring yang lebih baru. Ini membolehkan kita menghasilkan kod plat boiler dan struktur projek untuk aplikasi Spring dengan perintah mudah digunakan.

Roo boleh digunakan sebagai aplikasi mandiri yang berjalan dari baris perintah sistem operasi. Tidak ada syarat untuk menggunakan Eclipse, Spring Tool Suite (STS) atau IDE lain; sebenarnya, kita boleh menggunakan mana-mana penyunting teks untuk menulis kod!

Namun, untuk kesederhanaan, kami akan menggunakan STS IDE dengan Roo Extension.

2. Memasang Spring Roo

2.1. Keperluan

Untuk mengikuti tutorial ini, ini mesti dipasang:

  1. Java JDK 8
  2. STS
  3. Spring Roo

2.2. Pemasangan

Setelah memuat turun dan memasang Java JDK dan STS, kita perlu membuka zip Spring Roo dan menambahkannya ke jalan sistem.

Mari buat pemboleh ubah persekitaran ROO_HOME dan tambahkan % ROO_HOME% \ bin ke jalan.

Untuk mengesahkan bahawa Roo dipasang dengan betul, kita dapat membuka baris perintah dan melaksanakan perintah berikut:

mkdir baeldung cd baeldung roo quit

Selepas beberapa saat kita akan melihat:

 _ ___ _ __ _ __(_)_ __ __ _ _ __ ___ ___ / __| '_ \| '__| | '_ \ / _` | | '__/ _ \ / _ \ \__ \ |_) | | | | | | | (_| | | | | (_) | (_) | |___/ .__/|_| |_|_| |_|\__, | |_| \___/ \___/ |_| |___/ 2.0.0.RC1 Welcome to Spring Roo. For assistance press TAB or type "hint" then hit ENTER.

Roo dipasang, dan ia berfungsi. Harap maklum bahawa versi Spring Roo akan berbeza-beza dan langkah dan arahannya mungkin bergantung pada versi sebenar yang digunakan.

Penting: Spring Roo 2.0 tidak serasi dengan 1.x.

2.3. Menambah dan Mengkonfigurasi Sambungan STS

Di luar kotak, STS menyokong pengembangan aplikasi Spring dan menyertakan sambungan siap pakai. Walau bagaimanapun, pelanjutan Spring Roo tidak termasuk. Oleh itu, kita perlu menambahkannya secara manual.

Di STS mari pergi ke Pasang Perisian Baru dan import penanda buku ke Tapak Perisian yang Tersedia . Pada masa ini, penanda halaman berada dalam folder% ROO_HOME% \ conf . Sebaik sahaja kami diimport penanda buku, kita boleh mencari hanya roo dan memasang versi terbaru Spring IDE Roo Sokongan . Pada akhirnya, kami akan diminta untuk memulakan semula STS.

Untuk langkah terperinci dan terkini, kami selalu dapat melihat dan memeriksa dokumentasi Spring Roo Bermula.

Setelah memasang Roo Support di STS, kita perlu menyiapkan peluasannya. Semudah menunjuk Roo Support ke % ROO_HOME% folder. Sekali lagi, Spring Roo Bermula memberikan langkah terperinci cara melakukannya.

Sekarang kita dapat pergi ke menu aplikasi "Window" sekali lagi dan pilih Show View> Roo Shell.

3. Projek Pertama

3.1. Menyiapkan Projek di STS

Di STS mari kita buka tetingkap Roo Shell dan klik pada ikon Buat Roo Project Baru . Ini akan membuka tetingkap New Roo Project .

Kami akan menamakan projek roo dan menggunakan com.baeldung sebagai nama pakej peringkat teratas kami. Kita boleh meninggalkan semua nilai lalai yang lain dan meneruskannya untuk membuat projek baru menggunakan Roo.

Di STS ini akan menjalankan perintah berikut untuk kita:

project setup --topLevelPackage com.baeldung --projectName "roo" --java 8 --packaging JAR

Seperti yang telah disebutkan, kita tidak memerlukan IDE, dan kita sendiri dapat menjalankan perintah itu dari Roo Shell! Untuk kesederhanaan, kami menggunakan ciri terbina dalam STS.

Sekiranya kita mendapat ralat berikut:

Could not calculate build plan: Plugin org.codehaus.mojo:aspectj-maven-plugin:1.8 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.codehaus.mojo:aspectj-maven-plugin:jar:1.8

cara termudah untuk memperbaikinya adalah dengan menyunting fail pom.xml secara manual dan mengemas kini aspekj.plugin.version dari 1.8 hingga 1.9 :

1.9

Pada tahap ini, seharusnya tidak ada kesalahan dalam projek ini, dan akan ada beberapa fail yang dihasilkan secara automatik untuk kami.

3.2. Shell Roo

Kini tiba masanya untuk membiasakan diri dengan Roo Shell. Antara muka pengguna utama Spring Roo sebenarnya adalah arahan arahan!

Oleh itu, mari kita kembali ke tetingkap Roo Shell. Di dalamnya, mari kita jalankan arahan pertama dengan menaip 'h' dan menekan CTRL + SPACE:

roo> h help hint

Roo secara automatik akan mencadangkan dan melengkapkan arahan secara automatik untuk kami. Kita boleh mengetik 'hi', tekan CTRL + SPACE, dan Roo akan secara automatik mencadangkan arahan petunjuk .

Satu lagi ciri hebat Roo Shell adalah kesedaran konteks . Sebagai contoh, output arahan petunjuk akan berubah bergantung pada input sebelumnya.

Sekarang mari kita laksanakan arahan petunjuk dan lihat apa yang berlaku:

roo> hint Roo requires the installation of a persistence configuration. Type 'jpa setup' and then hit CTRL+SPACE. We suggest you type 'H' then CTRL+SPACE to complete "HIBERNATE". After the --provider, press CTRL+SPACE for database choices. For testing purposes, type (or CTRL+SPACE) HYPERSONIC_IN_MEMORY. If you press CTRL+SPACE again, you'll see there are no more options. As such, you're ready to press ENTER to execute the command. Once JPA is installed, type 'hint' and ENTER for the next suggestion.

Ini memberi kita langkah seterusnya yang perlu kita laksanakan. Mari tambah pangkalan data sekarang:

roo> jpa setup --provider HIBERNATE --database HYPERSONIC_IN_MEMORY Created SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application.properties Updated SRC_MAIN_RESOURCES\application-dev.properties Updated ROOT\pom.xml [added dependencies org.springframework.boot:spring-boot-starter-data-jpa:, org.springframework.boot:spring-boot-starter-jdbc:, org.hsqldb:hsqldb:; added property 'springlets.version' = '1.2.0.RC1'; added dependencies io.springlets:springlets-data-jpa:${springlets.version}, io.springlets:springlets-data-jpa:${springlets.version}; added dependencies io.springlets:springlets-data-commons:${springlets.version}, io.springlets:springlets-data-commons:${springlets.version}]

Pada tahap ini, kita perlu melaksanakan beberapa perintah. Di antara mereka masing-masing, kita selalu dapat menjalankan petunjuk petunjuk untuk melihat apa yang dicadangkan oleh Roo. Ini adalah ciri yang sangat berguna.

Mari jalankan perintah terlebih dahulu , dan kita akan memahaminya selepas itu:

roo> entity jpa --class ~.domain.Book field string --fieldName title --notNull field string --fieldName author --notNull field string --fieldName isbn --notNull repository jpa --entity ~.domain.Book service --all web mvc setup web mvc view setup --type THYMELEAF web mvc controller --entity ~.domain.Book --responseType THYMELEAF

Kami kini bersedia menjalankan aplikasi kami. Namun, mari kita mundur melalui arahan untuk melihat apa yang telah kita lakukan.

First, we created a new JPA persistent entity in the src/main/java folder. Next, we created three String fields in Book class, gave them a name and set to be not null.

After that, we have generated Spring Data repository for the specified entity and created a new service interface.

In the end, we included Spring MVC configuration, installed Thymeleaf and created a new controller that manages our entity. Because we have passed Thymeleaf as the response type, the generated methods and views will reflect this.

3.3. Running the Application

Let's refresh the project and right click on roo project and select Run As > Spring Boot App.

Once the application has started, we can open a web browser and go to //localhost:8080. Next, to Roo icon, we will see Book menu and underneath two options: Create Book and List Books. We can use this to add a book to our application and view the list of added books.

3.4. Other Features

When we open Book.java class file, we'll notice that the class is annotated with @Roo annotations. These were added by Roo Shell and are used to control and customize the content of AspectJ inter-type declaration (ITD) files. We can view the files in Package Explorer in STS by unselecting “Hide generated Spring Roo ITDs” filter in View Menu, or we can open the files directly from the file system.

Roo annotations have SOURCE retention policy. This means the annotations won't be present in compiled class bytecode, and there won't be any dependency to Roo in deployed applications.

Another, obviously missing part in the Book.java class are getters and setters. These are stored in separate AspectJ ITDs files, as already mentioned. Roo will actively maintain this boilerplate code for us. Therefore, changes to fields in any class will be automatically reflected in AspectJ ITDs as Roo is “monitoring” all changes – either done via Roo Shell or directly by a developer in IDE.

Roo will take care of the repetitive code like toString() or equals() methods too.

Lebih-lebih lagi, kerangka kerja dapat dengan mudah dikeluarkan dari projek, mengelakkan penguncian vendor, dengan membuang anotasi dan mendorong AspectJ ITD ke kod java standard.

4. Kesimpulan

Dalam contoh ringkas ini, kami berjaya memasang dan mengkonfigurasi Spring Roo di STS dan membuat projek kecil.

Kami menggunakan Roo Shell untuk menyiapkannya dan tidak perlu menulis satu baris kod Java yang sebenarnya! Dan kami dapat mendapatkan prototaip aplikasi yang berfungsi dalam beberapa minit dan Roo mengurus semua kod plat boiler untuk kami.

Seperti biasa, kod yang digunakan sepanjang perbincangan boleh didapati di GitHub.