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:
package com.xyz.myapp.domain;
import org.springframework.beans.factory.annotation.Configurable;
@Configurable
public class Account {
// ...
}
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:
package com.xyz.myapp.domain;
import org.springframework.beans.factory.annotation.Configurable;
@Configurable("account")
public class Account {
// ...
}
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.
GO TO FULL VERSION