JavaRush /Kurslar /All lectures for TK purposes /Spring arkaly objektleri aýratyn görnüşde girizmek üçin A...

Spring arkaly objektleri aýratyn görnüşde girizmek üçin AspectJ ulanmak

All lectures for TK purposes
Dereje , Sapak
Elýeterli

Spring konteýneri goşundydaky konfigurasiýa bilen bellige alnan binleriň nusgalaryny döredýär we olary konfigurirleýär. Şeýle-de, bar bolan objektiň konfigurasiýasyny islemäge mümkinçilik berýär, biniň definisiýasyny görkezmek bilen. spring-aspects.jar paketinde, bu mümkinçilikden peýdalanýan we her bir obýekt üçin degişli baglanyşygy üpjün edýän, bellik bilen dolandyrylýan aspekt bar. Bu esasan, konteýneriň dolanyşygyndan daşary döredilen obýektler üçin niýetlenen. Tehniki spesifikasiýa obýektleri köplenç bularyň içine girýär, sebäbi olar köplenç kodda new operatory ýa-da ORM gurallarynyň kömegi bilen döredilýär.

@Configurable bellik Java obýektini Spring konfigurasiýasy üçin laýyk bellemekde ulanylýar. Adatça, bu bellik işjeň şekilname hökmünde ulanylýar, aşakdaky mysalda görkezilişi ýaly:

Java
package com.xyz.myapp.domain;
import org.springframework.beans.factory.annotation.Configurable;
@Configurable
public class Account {
    // ...
}
Kotlin
package com.xyz.myapp.domain
import org.springframework.beans.factory.annotation.Configurable
@Configurable
class Account {
    // ...
}

Bu şekilde işlenen bellikde Spring, belliklenen tipiň täze nusgalaryny (bu ýagdaýda Account) şoňa görä konfigurirleýär. Aşakdaky mysalda, bin definisiýasy görkezilýär:

<bean class="com.xyz.myapp.domain.Account" scope="prototype">
    <property name="fundsTransferService" ref="fundsTransferService"/>
</bean>

Eger ýörite at bin definisiýasyny bellemek gerek bolsa, aşakdaky ýaly bellikde göni görkezilip bilner:

Java
package com.xyz.myapp.domain;
import org.springframework.beans.factory.annotation.Configurable;
@Configurable("account")
public class Account {
    // ...
}
Kotlin
package com.xyz.myapp.domain
import org.springframework.beans.factory.annotation.Configurable
@Configurable("account")
class Account {
    // ...
}

Indi Spring account atly bin definisiýasyny gözleýär we şol definisiýa bilen täze Account obýektlerini konfigurirleýär.

Özüňiz bellik definisiýasyny görkezmän, awtomatiki anyklama we baglanyşma ulanyp bilersiňiz. @Configurable bellikde autowire aýratynlygy ulanylmak bilen autowire görnüşli hyzmatlar üpjün edilýär, aşakdaky ýaly:

@Configurable(autowire=Autowire.BY_TYPE)

Netijede, Spring görkezilen obýektleri üpjün edýär we täzeden konfigurirleýär. Bu bolsa täze nusgalynyň görnüşine görä özleşdirilýär.

AspectJ nukdaýnazary bilen belliklenen obýektler arkaly aspekti girdirgijeň ulanmak zerur. Munuň üçin, dürli gurallary ulanyp bilersiňiz (Ant ýa-da Maven gurluşda ulanylmak bilen).

Geliň, muňa mysal hökmünde gatnaşyjy kontekstiniň döremegini ara alyp maslahatlaşalyň. Köplenç, bu girizmeler bir web programmasynyň içinde öňe sürilýär.

Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION