Rumah > Java > javaTutorial > teks badan

Memanfaatkan Persediaan dan Penyepaduan Automatik dengan Perkhidmatan Quarkus Dev untuk Pembangunan Cekap

WBOY
Lepaskan: 2024-09-03 13:11:28
asal
366 orang telah melayarinya

JPrime 2024 berakhir dengan jayanya!!

Penganjur JPrime 2024 sekali lagi berusaha keras untuk menawarkan pelbagai topik, memastikan ada sesuatu untuk semua orang.

Walau bagaimanapun, artikel hari ini tidak dicetuskan oleh salah satu syarahan Michael Simons tentang "Evolusi Pengujian Integrasi dalam Musim Bunga dan Quarkus" walaupun ia sangat bernas. Dia meneroka strategi ujian integrasi, memfokuskan pada persediaan dalam Spring Boot.

Pengarang dengan jelas menekankan bahawa isu yang diketengahkan beliau ditangani dengan berkesan dalam Quarkus melalui penggunaan Perkhidmatan Dev (Rajah 1). Ini menyerlahkan satu lagi sebab mengapa saya melihat Spring Boot dengan keraguan untuk aplikasi tertentu- kerumitannya sangat berbeza dengan penyelesaian yang diperkemas dalam Quarkus, terutamanya dengan penggunaan Perkhidmatan Dev.

Harnessing Automatic Setup and Integration with Quarkus Dev Services for Efficient Development

Rajah 1 – JPrime 2024

Sungguh mengagumkan menyaksikan perkhidmatan Dev yang terpesona dalam kalangan peserta baharu. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa Perkhidmatan Dev bukanlah ciri terbaru dalam Quarkus; ia telah menjadi sebahagian daripada rangka kerja untuk sekian lama. Mari kita mendalami Quarkus Dev Services dan terokai faedah kekalnya.

Perkhidmatan Quarkus Dev

Di Quarkus, Dev Services memudahkan peruntukan automatik perkhidmatan yang tidak dikonfigurasikan dalam kedua-dua mod pembangunan dan ujian. Pada asasnya, jika anda memasukkan sambungan tanpa mengkonfigurasinya, Quarkus akan memulakan perkhidmatan yang berkaitan secara automatik—selalunya menggunakan Testcontainers di latar belakang—dan mengkonfigurasi aplikasi anda untuk menggunakan perkhidmatan ini dengan cekap.

  1. Pengesanan dan Pelancaran Perkhidmatan Automatik

    Quarkus Dev Services mengautomasikan pengesanan dan pelancaran perkhidmatan yang diperlukan seperti pangkalan data, broker mesej dan perkhidmatan backend lain. Fungsi ini menggunakan kebergantungan aplikasi yang dinyatakan dalam pom.xml atau build.gradle. Sebagai contoh, menambah pemacu pangkalan data secara automatik mencetuskan Dev Services untuk memutarkan contoh kontena yang sepadan bagi pangkalan data itu jika ia belum berjalan. Teknologi yang digunakan di sini terutamanya melibatkan Testcontainers, yang membolehkan penciptaan contoh pangkalan data biasa yang ringan dan mudah dibuang, penyemak imbas web Selenium atau apa sahaja yang boleh dijalankan dalam bekas Docker.

  2. Suntikan Konfigurasi Dinamik

    Setelah perkhidmatan yang diperlukan disegerakan, Quarkus Dev Services secara dinamik menyuntik butiran sambungan perkhidmatan yang berkaitan ke dalam konfigurasi aplikasi semasa masa jalan. Ini dilakukan tanpa sebarang campur tangan manual, menggunakan ciri yang dikenali sebagai Ujian Berterusan yang menghalakan semula pangkalan data standard, atau URL perkhidmatan lain, ke Testcontainers yang diperuntukkan secara automatik. Sifat konfigurasi seperti URL, bukti kelayakan pengguna dan parameter operasi lain ditetapkan dengan lancar, membenarkan aplikasi berinteraksi dengan perkhidmatan ini seolah-olah ia dikonfigurasikan secara manual.

  3. Gelagat Khusus Perkhidmatan

    Perkhidmatan Dev disesuaikan untuk pelbagai jenis perkhidmatan:

    • Pangkalan Data: Secara automatik menyediakan pangkalan data berjalan yang disesuaikan dengan keperluan aplikasi anda, sama ada PostgreSQL, MySQL, MongoDB atau mana-mana pangkalan data lain yang disokong. Dev Services memastikan bahawa Testcontainer yang sepadan tersedia semasa pembangunan.
    • Sistem Pemesejan: Untuk aplikasi yang menggunakan sistem pemesejan seperti Kafka atau AMQP, Quarkus Dev Services memulakan broker yang diperlukan menggunakan Docker dan menghubungkannya dengan aplikasi.
    • Perkhidmatan Pembangun Tersuai: Pembangun boleh melanjutkan fungsi dengan mencipta sambungan Quarkus tersuai yang memanfaatkan rangka kerja Perkhidmatan Dev. Ini membolehkan persediaan yang disesuaikan yang khusus projek, menawarkan fleksibiliti dan kawalan yang lebih besar.
  4. Pengendalian Rangkaian dan Pengasingan Perkhidmatan

    Setiap perkhidmatan yang diputar oleh Quarkus Dev Services berjalan dalam persekitaran terpencilnya. Ini penting untuk memastikan tiada konflik port, sisa data atau isu keselamatan antara ujian pembangunan yang berbeza. Walaupun pengasingan ini, perkhidmatan dirangkaikan dengan sewajarnya menggunakan Docker, memastikan mereka boleh berkomunikasi antara satu sama lain mengikut keperluan, meniru suasana penggunaan dunia sebenar.

  5. Pengurusan Kitaran Hayat

    Quarkus menguruskan kitaran hayat lengkap perkhidmatan yang diperuntukkan secara dinamik ini. Apabila anda memulakan aplikasi anda dalam mod pembangunan, perkhidmatan yang diperlukan dimulakan secara automatik. Apabila anda menghentikan aplikasi Quarkus, perkhidmatan ini juga akan ditamatkan. Pengurusan ini termasuk pengendalian ketekalan data seperti yang diperlukan, membenarkan pembangun menyambung terus dari tempat mereka berhenti tanpa sebarang kelewatan persediaan.

Contoh Penggunaan

Pertimbangkan anda menggunakan pangkalan data PostgreSQL dengan Quarkus. Jika tiada konfigurasi PostgreSQL sedia ada dikesan, Quarkus akan memulakan bekas PostgreSQL Docker dan menyambungkan aplikasi anda secara automatik.

Perkhidmatan ini didayakan secara lalai dalam mod pembangunan dan ujian tetapi boleh dilumpuhkan jika perlu melalui aplikasi.properties:

quarkus.datasource.devservices.enabled=false
Salin selepas log masuk

Mari kita kembangkan senario di mana Quarkus menggunakan pangkalan data PostgreSQL dan cara Perkhidmatan Dev memudahkan perkara ini dengan kekecohan yang minimum.

Jika Quarkus mengesan bahawa tiada konfigurasi PostgreSQL aktif (tidak berjalan atau tidak dikonfigurasikan secara eksplisit), ia akan secara automatik memulakan bekas PostgreSQL menggunakan Docker. Ini disediakan di belakang tabir melalui Perkhidmatan Dev.

Untuk berinteraksi dengan pangkalan data melalui lapisan ORM, pertimbangkan untuk menggunakan Quarkus Panache, yang memudahkan operasi ORM Hibernate. Begini cara untuk menyediakan persekitaran anda:

  1. Tambah Kebergantungan

    Pertama sekali, masukkan kebergantungan yang diperlukan dalam pom.xml anda:

    <dependency>
     <groupId>io.quarkus</groupId>
     <artifactId>quarkus-hibernate-orm-panache</artifactId>
    </dependency>
    <dependency>
     <groupId>io.quarkus</groupId>
     <artifactId>quarkus-jdbc-postgresql</artifactId>
    </dependency>
    
    Salin selepas log masuk
  2. Tentukan Entiti

    Seterusnya, tentukan entiti anda, seperti CityEntity:

    @Entity
    @Table(name = "cities")
    public class CityEntity {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    private String name;
    
    @Column(name = "public_id")
    private String publicId;
    
    @OneToOne
    private StateEntity state;
    
    @Column(nullable = false, name = "created_at")
    private Instant createdAt;
    
    @Column(nullable = false, name = "last_modified")
    private Instant lastModified;
    
    @PrePersist
    protected void onCreate() {
     createdAt = Instant.now();
     lastModified = createdAt;
    }
    
    @PreUpdate
    protected void onUpdate() {
     lastModified = Instant.now();
    }
    }
    
    Salin selepas log masuk
  3. Buat Repositori

    Laksanakan repositori yang akan berinteraksi secara langsung dengan pangkalan data ke:

    @ApplicationScoped
    public class CityRepository implements 
    PanacheRepository<CityEntity> {
    }
    
    Salin selepas log masuk
  4. Lapisan Perkhidmatan

    Tentukan lapisan perkhidmatan yang menggunakan repositori:

    @ApplicationScoped
    public class CityServiceImpl implements CityService {
    
      @Inject
      CityRepository cityRepository;
    
      @Override
      public long countCities() {
       return cityRepository.count();
      }
    }
    
    public interface CityService {
     long countCities();
    }
    
    Salin selepas log masuk
  5. Titik Akhir Sumber

    @Path("/cities")
    @Tag(name = "City Resource", description = "City APIs")
    public class CityResource {
    
      @Inject
      CityService cityService;
    
      @GET
      @Path("/count")
      @Operation(summary = "Get the total number of cities", 
       description = "Returns the total count of cities in the 
       system.")
      @APIResponse(responseCode = "200", description = "Successful 
      response", content = @Content(mediaType = "application/json", 
      schema = @Schema(implementation = Long.class)))
      public long count() {
       return cityService.countCities();
      }
     }
    
    Salin selepas log masuk

Apabila anda menjalankan aplikasi Quarkus anda (mvn quarkus:dev), perhatikan permulaan automatik bekas PostgreSQL (Rajah 2). Penyepaduan yang lancar ini menunjukkan kuasa Quarkus Dev Services, menjadikan pembangunan dan ujian menjadi lebih mudah dengan mengautomasikan konfigurasi dan persediaan sambungan kepada perkhidmatan luaran yang diperlukan untuk aplikasi anda.

Harnessing Automatic Setup and Integration with Quarkus Dev Services for Efficient Development

Rajah 2 – Log aplikasi

Perkhidmatan Pembangun Platform

Perkhidmatan Quarkus Dev menyelaraskan fasa pembangunan dan ujian dengan mengendalikan konfigurasi dan pengurusan pelbagai perkhidmatan, membolehkan pembangun menumpukan lebih pada aplikasi sebenar. Quarkus menyokong pelbagai Perkhidmatan Dev, termasuk:

  • AMQP
  • Apicurio Registry
  • Pangkalan data
  • Kafka
  • Jubah kunci
  • Kubernetes
  • MongoDB
  • ArnabMQ
  • Pulsar
  • Redis
  • Kebal
  • Infinispan
  • Elasticsearch
  • Kebolehperhatian
  • Neo4j
  • WireMock
  • Microcks
  • Jubah kunci
  • dan banyak lagi, setiap satu direka untuk meningkatkan persekitaran pembangunan anda dengan lancar

Kesimpulan

Perkhidmatan Quarkus Dev mewakili anjakan paradigma dalam cara pembangun mendekati penyediaan dan penyepaduan perkhidmatan luaran semasa fasa pembangunan dan ujian. Automasi persediaan persekitaran bukan sahaja mempercepatkan proses pembangunan tetapi juga mengurangkan potensi ralat konfigurasi, menjadikannya lebih mudah untuk pasukan menumpukan pada mencipta aplikasi yang teguh dan kaya dengan ciri.

Salah satu kelebihan menonjol Quarkus Dev Services ialah penekanan pada produktiviti pembangun. Dengan mengalih keluar keperluan untuk mengurus kebergantungan perkhidmatan secara manual, pembangun boleh segera memulakan kerja pada logik perniagaan dan ciri aplikasi. Aliran kerja yang diperkemas ini amat berfaedah dalam seni bina perkhidmatan mikro yang berbilang perkhidmatan mungkin memerlukan pembangunan dan penyepaduan serentak

Kesimpulannya, menerima Quarkus Dev Services boleh memberi kesan ketara kepada keberkesanan dan hasil projek pasukan pembangunan anda. Kesederhanaan dan kuasa Quarkus menggalakkan percubaan,
lelaran yang lebih cepat, dan akhirnya kitaran pembangunan yang lebih pantas. Leverage teknologi seperti ini adalah perkara yang diperlukan oleh perniagaan moden untuk berkembang maju dalam era digital.

Atas ialah kandungan terperinci Memanfaatkan Persediaan dan Penyepaduan Automatik dengan Perkhidmatan Quarkus Dev untuk Pembangunan Cekap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!