Tutorial Musim Semi,,en,Pemindaian komponen dalam kerangka Spring,,en – Component scanning in Spring framework

Component scanning in Spring framework

Tutorial Musim Semi,,en,Pemindaian komponen dalam kerangka Spring,,en – Pemindaian komponen dalam kerangka Spring,,en,mendeteksi dan selanjutnya,,en,membuat instance kacang dari paket proyek yang sudah ditentukan,,en,yang dapat menyelamatkan Anda dari tugas yang membosankan karena harus mendeklarasikan kacang dalam file XML terpisah,,en,Inilah yang akan kita lihat dalam tutorial ini,,en,Apa itu penemuan kacang secara otomatis?,,en,Saat bekerja dengan Musim Semi,,en,dapat digunakan dengan menggunakan kacang,,en,argumen konstruktor dan tag properti,,en,ketika kita menghadapi aplikasi besar,,en,jelas bahwa jumlah kacang meningkat dan begitu juga,,en,jumlah XML yang akan ditulis bisa menjadi berat dan besar,,en,Spring menyediakan fitur yang dikenal sebagai Auto-Wiring,,en,menggunakan yang mana,,en,jumlah XML dapat diminimalkan mengingat beberapa asumsi dapat dibuat tentang penamaan kacang dan properti,,en,Dengan menggunakan fitur ini,,en,jumlah tag,,enk

Ikhtisar:

Generally, programmers tend to declare the beans or components in a bean file of XML configuration, in order to allow the Spring container to detect and register them. However, you should know that Spring is capable of auto scanning, detecting and further, instantiating beans from the already defined project package. So, that can save you of the tedious task of having to declare beans in a separate XML file. This is what we are going to look into in this tutorial.








What is automatic discovery of beans?

When working with Spring, dependency injection can be used by using bean, constructor arguments and property tags. However, when we are encountering large applications, it is obvious that the number of beans increase and the likewise, the amount of XML to be written can become unwieldy and large.

So, Spring provides the feature known as Auto-Wiring, using which, the amount of XML can be minimized considering that some assumptions can be made about the naming of beans and properties. By using this feature, the number of tags, seperti properti dan konstruktor-arg,,en,dikurangi untuk sebagian besar dan ukuran,,en,juga dapat dikurangi untuk aplikasi besar,,en,terlepas dari kenyataan bahwa tag kacang yang disambungkan secara otomatis masih perlu didefinisikan dalam file spring-config.xml,,en,Musim semi dapat membantu menghindari definisi kacang juga,,en,Anda memiliki cara untuk secara otomatis menemukan kacang yang akan disuntikkan,,en,Penemuan kacang secara otomatis diatur oleh aturan tertentu,,en,Penggunaan konteks tag,,en,annotation-tag di spring-config.xml memungkinkan Spring menggunakan Annotations,,en,Menggunakan konteks,,en,tag component-scan di spring-config.xml memberi tahu Spring paket tempat ia dapat menemukan kacang secara otomatis,,en,Penggunaan anotasi @Component adalah untuk menandai kelas sebagai kacang yang dapat ditemukan secara otomatis untuk Spring,,en, are reduced to a large extent and the size of XML can also be reduced for large applications.

And, despite the fact that bean tags that are auto-wired still require to be defined in the spring-config.xml file, Spring can help in avoiding bean definitions as well. Thus, you have a way of automatically discovering beans to be injected.

The automatic discovery of beans is governed by certain rules. These are –

  • The usage of the tag context:annotation-tag in the spring-config.xml allows Spring to use Annotations.
  • Using context:component-scan tag in the spring-config.xml tells Spring the package where it can auto-discover beans.
  • The use of @Component annotation is to mark a class as an auto-discoverable bean for Spring.

So, Anda dapat melihat bahwa jika anotasi @Component digunakan maka tidak perlu mendeklarasikan kacang di file spring-config.xml,,en,dengan demikian menjaga,,en,ringan juga,,en,Mengapa pemindaian komponen otomatis itu penting,,en,Pemindaian komponen otomatis sangat penting karena membantu mengurangi jumlah XML,,en,karena tidak perlu mendeklarasikan definisi kacang secara terpisah di file spring-config.xml,,en,karena Anda tidak perlu mendeklarasikan definisi kacang secara terpisah,,en,itu menghemat banyak waktu dan membuat prosesnya sederhana,,en,Apa jenis anotasi untuk pemindaian komponen otomatis?,,en,Sesuai Musim Semi,,en,ada empat jenis anotasi pemindaian komponen otomatis,,en,– Dimaksudkan untuk komponen pemindaian otomatis,,en,@Gudang,,en,– Indikasi komponen DAO di lapisan persistensi,,en,– Indikasi komponen layanan lapisan bisnis,,en, thus keeping the XML light as well.

Why automatic component scan is important?

Automatic component scan is largely important as it helps to reduce the amount of XML, as there is no need to declare bean definitions separately in the spring-config.xml file. Also, since you do not have to declare bean definitions separately, it does save a lot of time and makes the process simple.

What are the annotation types for automatic component scan?

As per Spring 2.5, there are four types of auto components scan annotations. These are –

  • @Component – Meant for an auto scan component.
  • @Repository – Indication of DAO component in the persistence layer.
  • @Service – Indication of service component the business layer.
  • @Controller – Ini menunjukkan komponen pengontrol di lapisan presentasi,,en,Penggunaan anotasi @Component saja dapat digunakan untuk memberi anotasi pada tiga anotasi lainnya,,en,ini adalah pilihan yang paling disukai saat menulis kode,,en,Bagaimana penemuan otomatis dicapai dalam kerangka Spring,,en,Keempat anotasi yang telah disebutkan di atas dapat diatur untuk pengalengan dan penemuan otomatis,,en,Proses untuk melakukannya agak sederhana,,en,Anda harus menggunakan konteksnya,,en,tag pemindaian komponen dalam file spring-cofig.xml untuk mengaktifkan fitur pemindaian otomatis,,en,Di bagian ini kita akan menulis kacang berbasis anotasi dan kemudian menggunakan pemindaian komponen dalam file XML untuk mengidentifikasi kacang ke wadah Spring,,en,Pertama adalah kacang perusahaan dengan nilai default yang disebutkan dengan menggunakan anotasi,,en,Ini adalah kacang perusahaan,,en.

The use of just @Component annotation can be used to annotate the other three annotations. So, this is the most preferred choice when writing code.

How automatic discovery is achieved in Spring framework?

All of the four annotations that have been mentioned above can be set for automatic canning and discovery. The process to do so is rather simple.

You will need to use the context:component-scan tag in the spring-cofig.xml file to enable the automatic scanning feature.








Environment setup:

Setting up the environment for Spring based application development involves just three major steps.

  • Setting up Java Development Kit

Download JDK from the Oracle site and then, menginstal dan mengkonfigurasinya. Then the PATH and JAVA_HOME environment variables must be set.

  • Setting of Eclipse IDE

Eclipse can be downloaded from the situs resmi. Once downloaded, unpack the binaries and then set the PATH as well.

  • Setting up Spring libraries

The Spring libraries may be obtained from http://repo.spring.io/release/org/springframework/spring/. Again, it is important to set the CLASSPATH correctly.

Now your environment is ready to start developing Spring based Java applications.

Sample application:

In this section we will write annotation based beans and then use component scan in the XML file to identify the beans to the Spring container.

First is the company bean with default values mentioned by using annotations.

Listing 1: This is the company bean

package com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en;

mengimpor org.springframework.beans.factory.annotation.Value;

mengimpor org.springframework.stereotype.Component;

@Component

publik kelas Perusahaan {

pribadi Product product;

@Value(“Small Car”)

pribadi String prname;

@Value(“4,00,000”)

pribadi String prprice;

 

publik String getPrprice() {

return prprice;

}

publik membatalkan setPrprice(String prprice) {

this.prprice = prprice;

}

publik Product getProduct() {

return product;

}

publik membatalkan setProduct(Product product) {

this.product = product;

}

publik String getPrname() {

return prname;

}

publik membatalkan setPrname(String prname) {

this.prname = prname;

}

}

This is the product bean having simple getter and setter methods.

Listing 2: This is the product bean

package com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en;

mengimpor org.springframework.stereotype.Component;

@Component

publik kelas Product {

pribadi String name;

pribadi String price;

publik String getName() {

return nama;

}

publik membatalkan setName(String name) {

this.name = name;

}

publik String getPrice() {

return price;

}

publik membatalkan setPrice(String price) {

this.price = price;

}

}

This is the most important part containing the instruction for auto-scanning of components in the package. You can use multiple packages or any other package location to enable auto-scan. It instructs the container to find the related beans and then integrate them as and when required. It does the actual magic in spring application.

The instruction syntax is as shown below. It scans all the beans under com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en package.

<konteks:component-scan base-package=“com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en” />

Listing 3: This is the XML configuration file

<kacang polong xmlns=“http://www.springframework.org/schema/beans”

xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xmlns:context=“http://www.springframework.org/schema/context”

xsi:schemaLocation=“http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.5.xsd”>

<konteks:component-scan base-package=“com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en” />

</kacang polong>

Ini adalah file utama untuk menguji aplikasi,,en,Pemindaian OtomatisUtama,,da,Konten Web/WEB-INF/autoScanConfig.xml,,en,jalankan aplikasi dan itu akan menampilkan output berikut:,,en,Mobil kecil,,en,Mendefinisikan kacang secara terpisah dalam file konfigurasi dapat menjadi pekerjaan yang sibuk untuk setiap programmer,,en,Pemindaian komponen otomatis di Spring adalah fitur yang sangat berguna yang dapat membantu programmer untuk mengurangi file XML besar untuk aplikasi yang besar,,en,Tutorial ini menunjukkan cara menyiapkan dan menjelaskan lebih lanjut cara menerapkan pemindaian komponen otomatis dengan bantuan contoh sederhana,,en.

Listing 4: This is the main Java file

package com.techalpine.autoscan,,pt,org.springframework.beans.factory.annotation.Value,,en,org.springframework.stereotype.Component,,en,@Nilai,,en,Mobil kecil,,en,Ini adalah kacang produk yang memiliki metode pengambil dan penyetel sederhana,,en,Ini adalah produk kacang,,en,Ini adalah bagian terpenting yang berisi instruksi untuk pemindaian otomatis komponen dalam paket,,en,Anda dapat menggunakan beberapa paket atau lokasi paket lainnya untuk mengaktifkan pemindaian otomatis,,en,Ini menginstruksikan wadah untuk menemukan kacang terkait dan kemudian mengintegrasikannya saat dan saat diperlukan,,en,Itu melakukan keajaiban yang sebenarnya dalam aplikasi musim semi,,en,Sintaks instruksi adalah seperti yang ditunjukkan di bawah ini,,en,Ini memindai semua kacang di bawah,,en,pemindaian komponen,,en,paket dasar =,,en,Ini adalah file konfigurasi XML,,en,www.springframework.org/schema/beans/spring-beans-2.5.xsd,,en,www.springframework.org/schema/context/spring-context-2.5.xsd,,en;

mengimpor org.springframework.context.ApplicationContext;

mengimpor org.springframework.context.support.FileSystemXmlApplicationContext;

publik kelas AutoScanMain {

publik statis membatalkan utama(Senar[] args) {

ApplicationContext context = baru FileSystemXmlApplicationContext(

“WebContent/WEB-INF/autoScanConfig.xml”);

Company compobj = (Perusahaan) context.getBean(“company”);

Sistem.di luar.println(“Product Name: “+compobj.getPrname());

Sistem.di luar.println(“Product Price: “+compobj.getPrprice());

}

}

Now, run the application and it will show the following output

Product Name: Small car

Product Price: 4,00,000








Kesimpulan

Defining beans separately in the configuration file can be hectic job for any programmer. Automatic component scanning in Spring is a very useful feature that can help a programmer to cut down on massive XML files for applications that are large.

This tutorial shows you how to setup and further explains how to implement auto component scanning with the help of a simple example.

============================================= ============================================== Buy best TechAlpine Books on Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Enjoy this blog? Please spread the word :)

Follow by Email
LinkedIn
LinkedIn
Share