kerja org.springfram

1. Pengenalan

Spring Framework menyediakan model pengaturcaraan dan konfigurasi yang bersih dan ekspresif untuk aplikasi perusahaan berasaskan Java moden yang dapat berjalan di platform penyebaran mana pun.

Artikel ini merangkumi gambaran umum tahap tinggi mengenai rangka kerja Spring dan terutamanya, pakej kerja org.springframework yang memberikan sokongan untuk suntikan kebergantungan, pengurusan transaksi, aplikasi web, akses data, pemesejan, pengujian dan banyak lagi.

2. Ciri-ciri

Rangka kerja musim bunga menawarkan senarai ciri lengkap:

  • Aplikasi web Spring MVC dan rangka kerja perkhidmatan web RESTful
  • Pengaturcaraan Berorientasikan Aspek termasuk pengurusan transaksi deklaratif Spring
  • Suntikan Ketergantungan
  • Pembalikan Kawalan

dan banyak lagi.

3. Pergantungan Maven

Sekiranya anda ingin menambahkan Spring ke projek Maven anda, anda boleh mendapatkan lebih banyak maklumat mengenainya di sini.

4. Projek Musim Bunga

Kerangka ini merangkumi sejumlah modul dan projek yang berbeza. Dari konfigurasi hingga keselamatan, aplikasi web hingga data besar - apa sahaja keperluan infrastruktur aplikasi anda, ada Spring Project untuk membantu anda membinanya.

Mulakan kecil dan gunakan apa yang anda perlukan - Musim bunga adalah modular mengikut reka bentuk. Mari lihat beberapa projek di sini.

4.1. Spring Web MVC

Kerangka Web MVC menyediakan arsitektur Model-View-Controller, yang dirancang di sekitar DispatcherServlet yang menangani semua permintaan dan respons HTTP dan membuat aplikasi digabungkan secara longgar.

Perkara terbaik adalah ia membolehkan anda menggunakan objek apa pun sebagai objek perintah atau bentuk - tidak perlu melaksanakan antaramuka khusus-kerangka atau kelas asas. Pengikatan datanya sangat fleksibel: misalnya, ia menganggap ketidakcocokan jenis sebagai kesalahan pengesahan yang dapat dinilai oleh aplikasi, bukan sebagai kesalahan sistem.

Di sini anda boleh mendapatkan panduan lengkap.

4.2. Platform Spring IO

Platform IO mendefinisikan satu set dependensi (kedua dependensi Spring Framework sebagai perpustakaan pihak ketiga) yang boleh disertakan dalam projek Java untuk membolehkan anda memilih dependensi yang diperlukan tanpa perlu risau tentang keserasian antara versi mereka (kerana Spring IO menjaminnya).

Platform IO diperakui untuk bekerja dengan Java 7 dan 8.

Lihat projek GitHub.

4.3. Spring Boot

Spring Boot mempermudah untuk membuat Aplikasi berasaskan Spring yang bersendirian dan pengeluaran yang boleh anda "jalankan" sahaja. Ini menjadikannya sangat mudah untuk membuat aplikasi berkuasa Spring dengan minimum kerja.

Aplikasi yang dibuat dengannya dapat dikonfigurasikan secara otomatis dengan beberapa default yang masuk akal dan di sebelahnya dapat diperbaiki dengan metrik (berapa banyak permintaan, berapa lama permintaan dilakukan, dll.).

Ia terdiri daripada beberapa modul (pilihan):

  1. CLI - Antara muka baris perintah, berdasarkan Groovy, untuk memulakan / menghentikan aplikasi spring boot yang dibuat.
  2. Core Core - Pangkalan untuk modul lain.
  3. Konfigurasi automatik - Modul untuk mengkonfigurasi secara automatik pelbagai projek Spring. Ia akan mengesan adanya kerangka kerja tertentu (Spring Batch, Spring Data JPA, Hibernate, JDBC).
  4. Penggerak - Projek ini, apabila ditambahkan, akan membolehkan ciri syarikat tertentu (Keselamatan, Metrik, halaman Ralat Lalai) ke aplikasi anda.
  5. Permulaan - Projek permulaan yang berbeza untuk disertakan sebagai pergantungan dalam fail binaan Maven atau Gradle anda. Ia akan mempunyai pergantungan yang diperlukan untuk jenis aplikasi tersebut. Pada masa ini, terdapat projek permulaan untuk projek web (berasaskan tomcat dan jeti), Spring Batch, Spring Data JPA, Spring Integration, Spring Security ada.
  6. Alat - Alat binaan Maven dan Gradle serta Spring Boot Loader tersuai (digunakan dalam balang / perang tunggal yang dapat dilaksanakan) termasuk dalam projek ini.

Kita dapat menemui artifak Maven di sini dan melihat projek GitHub.

4.4. Data Musim Semi

Misi Spring Data adalah untuk menyediakan model pengaturcaraan Spring yang biasa dan konsisten untuk akses data sambil masih mengekalkan ciri khas dari penyimpanan data yang mendasari.

Matlamat utama projek ini adalah untuk menjadikannya lebih mudah untuk membina aplikasi bertenaga Spring yang menggunakan teknologi akses data baru seperti pangkalan data bukan hubungan, kerangka pengurangan peta, dan perkhidmatan data berasaskan awan serta memberikan sokongan yang lebih baik untuk teknologi pangkalan data hubungan .

Ini adalah projek payung yang mengandungi banyak sub-projek yang khusus untuk pangkalan data tertentu (seperti JPA, MongoDB, Redis, Apache Solr, Gemfire, Apache Cassandra). Projek ini dibangunkan dengan bekerjasama dengan banyak syarikat dan pemaju yang berada di belakang teknologi menarik ini.

4.5. Keselamatan Musim Bunga

Spring Security adalah kerangka yang memfokuskan pada penyediaan pengesahan dan pengesahan untuk aplikasi Java. Seperti semua projek Spring, kekuatan sebenar Spring Security terdapat dalam seberapa mudah ia dapat diperluas untuk memenuhi keperluan khusus. Ia dikeluarkan di bawah lesen Apache 2.0 sehingga anda boleh menggunakannya dengan yakin dalam projek anda.

Ia juga mudah dipelajari, digunakan dan dikendalikan. Ia mempunyai ruang nama keselamatan khusus yang memberikan arahan untuk operasi yang paling biasa, yang membolehkan keselamatan aplikasi lengkap hanya dalam beberapa baris XML dan dapat melindungi aplikasi anda daripada serangan seperti pembetulan sesi, klik klik, pemalsuan permintaan silang laman, dll.

Spring Security juga disatukan dengan banyak teknologi Spring yang lain, termasuk Spring Web Flow, Spring Web Services dan Pivotal tc Server.

Lihat FAQ keselamatan Spring untuk mendapatkan pandangan yang lebih mendalam dan halaman ketergantungan Maven. Juga, lihat tutorial keselamatan Spring untuk Pengesahan, Pendaftaran, dan persediaan Spring Security dengan Maven .

4.6. Spring Sosial

Spring Social adalah lanjutan dari kerangka yang membolehkan aplikasi berhubung dengan penyedia Perisian-sebagai-a-Perkhidmatan seperti Twitter, Facebook, dan API berasaskan pengesahan OAuth yang lain. Ini menyediakan kerangka pengesahan OAuth yang siap digunakan untuk aplikasi berasaskan web.

Ciri-ciri:

  • Kerangka penyedia perkhidmatan yang boleh diperluas yang sangat memudahkan proses penyambungan akaun pengguna tempatan ke akaun penyedia yang dihoskan.
  • Pengawal penyambung yang menangani aliran kebenaran antara aplikasi web Java / Spring, penyedia perkhidmatan, dan pengguna anda.
  • Pengikatan Java ke API penyedia perkhidmatan popular seperti Facebook, Twitter, LinkedIn, TripIt, dan GitHub.
  • Pengawal log masuk yang membolehkan pengguna mengesahkan dengan aplikasi anda dengan log masuk melalui penyedia perkhidmatan.

Panduan Bermula:

  • Mengakses Data Facebook
  • Persediaan Twitter Sosial Spring
  • Log Masuk Facebook Sekunder

Spring memberikan beberapa contoh projek GitHub untuk membuat anda memulakan dengan cepat dan rujukan Spring Social juga berguna dengan halaman permulaan yang cepat.

4.7. Spring Shell

Spring Shell adalah shell interaktif yang dapat diperluas dengan mudah menggunakan perintah menggunakan model pengaturcaraan berasaskan Spring.

Pengguna projek shell dapat dengan mudah membina aplikasi shell ( alias command line) lengkap dengan bergantung pada Spring Shell jar dan menambahkan perintah mereka sendiri (yang datang sebagai kaedah pada kacang kacang). Membuat aplikasi baris perintah boleh berguna misalnya untuk berinteraksi dengan REST API projek anda, atau bekerja dengan kandungan fail tempatan.

Projek GitHub boleh didapati di sini.

4.8. Spring Bergerak

Spring Mobile adalah lanjutan dari kerangka kerja dan Spring Web MVC yang bertujuan untuk mempermudah pengembangan aplikasi web mudah alih.

Spring Mobile adalah kerangka yang menyediakan keupayaan untuk mengesan jenis peranti yang membuat permintaan ke laman web Spring anda dan melayani pandangan alternatif berdasarkan pada peranti tersebut. Seperti semua projek Spring, kekuatan sebenar Spring Mobile terdapat dalam seberapa mudah ia dapat diperluas.

Ciri-ciri:

  • Abstraksi penyelesai Peranti untuk pengesanan peranti mudah alih dan tablet di sisi pelayan
  • Pengurusan keutamaan laman web yang membolehkan pengguna menunjukkan apakah dia lebih suka pengalaman "biasa", "mudah alih", atau "tablet"
  • Pengalih laman web yang mampu mengalihkan pengguna ke laman web yang paling sesuai, sama ada mudah alih, tablet atau biasa, berdasarkan pada perantinya dan secara pilihan menunjukkan pilihan laman web
  • Pengurusan pandangan sedar peranti untuk mengatur dan mengurus pandangan berbeza untuk peranti tertentu.

Aplikasi contoh ini akan memulakan anda dengan cepat.

Anda juga dapat mengesan peranti, menangani pilihan laman web atau melayani kandungan web mudah alih dengan Spring MVC.

4.9. Spring Batch

Spring Batch adalah rangka kerja ringan dan komprehensif yang bertujuan untuk memungkinkan pengembangan aplikasi kumpulan penting untuk operasi harian sistem perusahaan.

Aplikasi kumpulan dalam konteks ini merujuk kepada sistem luar talian automatik yang disasarkan untuk pemprosesan data pukal. Spring Batch mengautomasikan iterasi kumpulan asas ini, memberikan kemampuan untuk memproses transaksi serupa sebagai satu set, biasanya dalam persekitaran luar talian tanpa interaksi pengguna.

Spring Batch berfungsi dengan membaca data dengan ukuran yang boleh dikonfigurasi dari sumber data, memprosesnya dan akhirnya menulisnya ke sumber.

Sumber data untuk pembaca dapat berupa file rata (file teks, file XML, file CSV…), pangkalan data relasional (MySQL…), MongoDB.

Begitu juga, seorang penulis dapat menulis data ke fail rata, pangkalan data hubungan, MongoDB, mailer dll.

Mulakan dengan cepat dengan Membuat Perkhidmatan Kumpulan dan sumber sumber musim bunga yang lain.

5. Pakej Spring Spring

Di sini, mari kita lihat pakej inti Spring.

  • org.springframework.cache - Pakej ini menyokong sub pakej dan kelas untuk pengurusan cache deklaratif, menyediakan cache sumber terbuka di perpustakaan Kafein, kelas sokongan untuk cache sumber terbuka EhCache 2.x.

  • org.springframework.context - Pakej ini dibina berdasarkan pakej kacang untuk menambah sokongan untuk sumber mesej dan untuk corak reka bentuk Observer, dan kemampuan untuk objek aplikasi memperoleh sumber menggunakan API yang konsisten.

  • org.springframework.core - Menyediakan kelas asas untuk pengendalian pengecualian dan pengesanan versi dan pembantu teras lain yang tidak khusus untuk mana-mana bahagian kerangka kerja.

  • org.springframework.expression - Pakej ini memberikan abstraksi teras di sebalik Spring Expression Language .

  • org.springframework.http - Pakej ini mengandungi abstraksi asas berbanding HTTP sisi pelanggan / pelayan.

  • org.springframework.jdbc - Kelas dalam pakej ini menjadikan JDBC lebih mudah digunakan dan mengurangkan kemungkinan kesalahan biasa.
  • org.springframework.jms - Pakej ini mengandungi kelas integrasi untuk JMS, yang membolehkan akses JMS gaya Spring.

  • org.springframework.jndi - Kelas dalam pakej ini menjadikan JNDI lebih mudah digunakan, memudahkan akses konfigurasi yang tersimpan di JNDI, dan menyediakan cermin mata hitam yang berguna untuk kelas akses JNDI.

  • org.springframework.orm.hibernate5 - Pakej yang menyediakan integrasi Hibernate 5.x dengan konsep Spring.

  • org.springframework.test.util - Kelas utiliti am untuk digunakan dalam ujian unit dan integrasi.

Senarai ini terhad dan hanya menerangkan pakej teras untuk rangka Spring. Anda boleh mendapatkan senarai lengkap di sini.

6. Kesimpulannya

Dalam artikel ikhtisar ringkas ini, kami telah melihat pelbagai projek yang terdapat di ekosistem Spring dan membuat banyak koleksi ketergantungan Maven, projek GitHub, dan ciri-ciri komprehensif yang ditawarkan oleh setiap projek untuk menjadikan aplikasi web kami selamat, terukur dan mudah hidup dengan.

Kami juga melihat pakej teras yang memberi kami kekuatan untuk fokus pada aspek logik aplikasi kami.