Über Spring DI ① Ist eine Fortsetzung von
Beschäftigt sich hauptsächlich mit der Konfiguration
** Bean-Definitionsdatei **
** Java-basierte Konfiguration **
JavaConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HogeConfig {
@Bean
HogeService hogeService() {
return new HogeService():
}
@Bean
AAABean aAABean() {
return new AAABean(hogeService());
}
@Bean(name = "bBean")
BBBBean bBBBean() {
return new bBBBean();
}
}
** XML-basierte Konfiguration **
xmlConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http;//www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hogeService" class="jp.co.hogeProgram.HogeService" />
<bean id="aAABean" class="jp.co.hogeProgram.AAABean">
<constructor-arg ref="hogeService"/>
</bean>
<bean id="bBean" class="jp.co.hogeProgram.BBBBean>
<constructor-arg value="aaa"/>
</bean>
</beans>
Da es notwendig ist, die Definition für jede der beiden oben genannten so viele wie die Anzahl der Beans zu schreiben, dauert es einige Zeit, so dass es üblich ist, DI durch Kombinieren der folgenden Annotationsbasen durchzuführen.
** Annotationsbasierte Konfiguration **
Bean
Hoge.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Hoge {
Automatische Verkabelung
Durch die Beschreibung dieser Anmerkung ruft FugaService die Bean automatisch aus dem DI-Container ab.
@Autowired
public Hoge(FugaService fuga);
Beschreiben Sie den Prozess
}
Konfigurationsklasse (XML weggelassen) Suchen Sie in diesem Fall unter jp.co.hoge nach einer Klasse
AppCongig.java
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("jp.co.hoge")
public class AppConfig {
}
Die Klasse mit der Annotation @Component kann durch "Komponentenscan" automatisch im DI-Container festgelegt werden. Dies wird als "automatische Verkabelung" bezeichnet.
Abhängig von der Rolle der Klasse gibt es mehrere Anmerkungen, z. B. @Service und @Component, die jedoch grundsätzlich mit @Component identisch sind.
Um den Komponentenscan zu aktivieren, schreiben Sie @ComponentScan ("package") in die Config-Klasse orXML oder beschreiben Sie das Paket im Kontext: component-scan element und suchen Sie nach der mit Anmerkungen versehenen Klasse, die unter dem Paket vorhanden ist.
Je breiter das Scanbereichspaket ist, desto länger dauert es. Daher müssen Sie einen geeigneten Bereich festlegen.
Ich habe vor, Bohnenassoziation zu machen
Recommended Posts