Blog KaryaVirtual

Gudang Pengetahuan Digital

Tutorial Springboot

January 23, 2020 Learn Springboot 0

Spring Boot adalah modul kerangka kerja Spring yang menyediakan fitur RAD ( Pengembangan Aplikasi Cepat ) ke kerangka kerja Spring. Ini sangat tergantung pada fitur starter template yang sangat kuat dan berfungsi dengan sempurna.

Modul spring boot

Modul spring boot

1. Apa itu starter template?

Spring Boot starter adalah template yang berisi kumpulan semua dependensi transitif yang relevan yang diperlukan untuk memulai fungsionalitas tertentu. Misalnya, Jika Anda ingin membuat aplikasi Spring WebMVC kemudian dalam pengaturan tradisional, Anda harus menyertakan sendiri semua dependensi yang diperlukan. Ini meninggalkan kemungkinan konflik versi yang akhirnya menghasilkan lebih banyak exception runtime .

Dengan Spring boot, untuk membuat aplikasi MVC yang Anda perlu impor adalah dependensi spring-boot-starter-web .

pom.xml
<!-- Parent pom is mandatory to control versions of child dependencies -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.6.RELEASE</version>
    <relativePath />
</parent>
 
<!-- Spring web brings all required dependencies to build web application. -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Di atas ketergantungan spring-boot-starter-web , impor secara internal semua dependensi yang diberikan dan tambahkan ke proyek Anda. Perhatikan bagaimana beberapa dependensi bersifat langsung, dan beberapa dependensi lebih lanjut merujuk ke templat starter lainnya yang mengunduh lebih banyak dependensi secara transitif.

Juga, perhatikan bahwa Anda tidak perlu memberikan informasi versi ke child dependency . Semua versi diselesaikan dalam kaitannya dengan versi orang tua starter (dalam contoh kami ini 2.0.4.RELEASE ).

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-json</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
</dependencies>

Baca Lebih Lanjut: Daftar templat starter booting musim semi

2. Konfigurasi semi boot otomatis

Konfigurasi otomatis diaktifkan dengan anotasi @EnableAutoConfiguration . Konfigurasi springboot otomatis   memindai classpath, menemukan pustaka di classpath dan kemudian mencoba menebak konfigurasi terbaik untuk mereka, dan akhirnya mengkonfigurasi semua kacang tersebut.

Konfigurasi otomatis mencoba menjadi sepintar mungkin dan akan mundur saat Anda mendefinisikan lebih banyak konfigurasi Anda sendiri.

Konfigurasi otomatis selalu diterapkan setelah kacang yang ditentukan pengguna telah didaftarkan.

Logika konfigurasi otomatis spring boot diimplementasikan di spring-boot-autoconfigure.jar . Yoy dapat memverifikasi daftar packae sini.

Paket konfigurasi musim semi booting

package konfigurasi springboot

Misalnya, lihat konfigurasi otomatis untuk Spring AOP. Itu melakukan berikut-

  1. Pindai classpath untuk melihat apakah kelas EnableAspectJAutoProxy , Aspect , Advice , dan AnnotatedElement hadir.
  2. Jika kelas tidak ada, konfigurasi otomatis tidak akan dibuat untuk Spring AOP.
  3. Jika kelas ditemukan maka AOP dikonfigurasikan dengan Java config annotation @EnableAspectJAutoProxy .
  4. Itu memeriksa properti spring.aop nilai mana yang bisa true atau false .
  5. Berdasarkan nilai properti, atribut proxyTargetClass diatur.
AopAutoConfiguration.java

@Configuration
@ConditionalOnClass({ EnableAspectJAutoProxy.class, Aspect.class, Advice.class,
        AnnotatedElement.class })
@ConditionalOnProperty(prefix = "spring.aop", name = "auto", havingValue = "true", matchIfMissing = true)
public class AopAutoConfiguration 
{
 
    @Configuration
    @EnableAspectJAutoProxy(proxyTargetClass = false)
    @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "false", matchIfMissing = false)
    public static class JdkDynamicAutoProxyConfiguration {
 
    }
 
    @Configuration
    @EnableAspectJAutoProxy(proxyTargetClass = true)
    @ConditionalOnProperty(prefix = "spring.aop", name = "proxy-target-class", havingValue = "true", matchIfMissing = true)
    public static class CglibAutoProxyConfiguration {
 
    }
 
}

3. Server Embedded

Aplikasi spring boot selalu menyertakan tomcat sebagai dependensi server built-in . Ini berarti Anda dapat menjalankan aplikasi boot Spring dari command prompt tanpa perlu infrastruktur server yang rumit.

Anda dapat mengecualikan Tomcat dan memasukkan server built-in lainnya jika diinginkan. Atau Anda dapat membuat mengecualikan lingkungan server sama sekali. Semuanya berbasis konfigurasi.

Sebagai contoh, konfigurasi di bawah ini tidak termasuk Tomcat dan menyertakan jetty sebagai server built-in.

pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>
 
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

4. Bootstrap aplikasi

Untuk menjalankan aplikasi , kita perlu menggunakan penjelasan @SpringBootApplication . Di belakang layar, itu setara dengan @Configuration , @EnableAutoConfiguration , dan @ComponentScan bersama-sama.

Ini memungkinkan pemindaian kelas konfigurasi, file dan memuatnya ke dalam konteks pegas . Dalam contoh di bawah ini, eksekusi dimulai dengan metode main() . Itu mulai memuat semua file konfigurasi, konfigurasikan dan bootstrap aplikasi berdasarkan pada properti aplikasi di file application.properties di folder /resources .

MyApplication.java

@SpringBootApplication
public class MyApplication 
{
    public static void main(String[] args) 
    {
        SpringApplication.run(Application.class, args);
    }
}
application.properties

### Server port #########
server.port=8080
  
### Context root ########
server.contextPath=/home

Untuk menjalankan aplikasi, Anda dapat menjalankan metode main () dari IDE gerhana tersebut , atau Anda dapat membangun file jar dan mengeksekusi dari command prompt.

$ java -jar spring-boot-demo.jar

5. Keuntungan dari boot Spring

  • Spring boot membantu dalam menyelesaikan konflik ketergantungan . Ini mengidentifikasi dependensi yang diperlukan dan mengimpornya untuk Anda.
  • Ini memiliki informasi versi yang kompatibel untuk semua dependensi. Ini meminimalkan masalah classloader runtime.
  • Ini adalah “konfigurasi konfigurasi default” membantu Anda dalam mengkonfigurasi bagian paling penting di belakang layar. Timpa hanya saat Anda membutuhkannya. Kalau tidak semuanya bekerja dengan sempurna. Ini membantu dalam menghindari kode boilerplate , penjelasan dan konfigurasi XML.
  • Ini menyediakan server HTTP built-in Tomcat sehingga Anda dapat mengembangkan dan menguji dengan cepat.
  • Ini memiliki integrasi yang sangat baik dengan IDE seperti gerhana dan ide intelliJ .

Leave a Reply

Your email address will not be published. Required fields are marked *