À propos de Spring DI ① Est une continuation de
Traite principalement de la configuration
** Fichier de définition de bean **
--Il agit comme un pont entre le bean et le conteneur DI, qui définit quelle instance et quelle valeur initiale passer au conteneur DI.
** Configuration basée sur Java **
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();
}
}
** Configuration basée sur XML **
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>
--Définissez un bean à l'intérieur de l'élément bean
Puisqu'il est nécessaire d'écrire la définition pour chacun des deux ci-dessus autant que le nombre de beans, cela prend du temps, il est donc courant d'effectuer DI en combinant les bases d'annotations suivantes.
** Configuration basée sur les annotations **
Bean
Hoge.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Hoge {
Câblage automatique
En décrivant cette annotation, FugaService récupérera automatiquement le bean du conteneur DI.
@Autowired
public Hoge(FugaService fuga);
Décrivez le processus
}
Classe de configuration (xml omis) Dans ce cas, recherchez une classe sous jp.co.hoge
AppCongig.java
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("jp.co.hoge")
public class AppConfig {
}
--La classe avec l'annotation @Component peut être automatiquement définie dans le conteneur DI par "Analyse des composants". C'est ce qu'on appelle le "câblage automatique"
--Il existe plusieurs annotations en fonction du rôle de la classe, telles que @Service et @Component, mais c'est fondamentalement la même chose que @Component.
Pour activer l'analyse des composants, @ComponentScan ("package") dans la classe Config ou XML, ou décrivez le package dans le contexte: élément de scan des composants et recherchez la classe annotée qui existe sous le package.
Plus le package de plage de balayage est large, plus cela prendra de temps, vous devez donc définir une plage appropriée.
Je prévois de faire une association de haricots
Recommended Posts