Cet article décrit la gestion de base de Spring Bean avec des exemples. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
1. Utilisez la méthode setter pour terminer l'injection de dépendances
Vous trouverez ci-dessous les fichiers Bean et beans-config.xml.
public class HelloBean { private String helloWord; //...omettre les méthodes getter et setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <property name="helloWord"> <value>Bonjour ! Justin !</value> </property> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { Resource rs = new FileSystemResource("beans-config.xml"); BeanFactory factory = new XmlBeanFactory(rs); helloBean"); System.out.println(hello.getHelloWord()); } }
2. Utilisez la méthode constructeur pour terminer l'injection
public class HelloBean { private String name; private String helloWord; // Il est recommandé d'avoir une méthode de construction sans paramètre public HelloBean() { } public HelloBean(String name, String helloWord) { this.name = name; ; } //...Omettre les méthodes getter et setter}
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <constructor-arg index="0"> <value>Justin</value> </constructor-arg> <constructor-arg index="1"> <value>Bonjour</value> </constructor-arg> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml"); hello = (HelloBean) context.getBean("helloBean"); ("Nom : "); System.out.println(hello.getName()); System.out.print("Mot : "); System.out.println(hello.getHelloWord());
3. Référence d'attribut
public class HelloBean {private String helloWord; private Date date; //...omettre les méthodes getter et setter}
<beans> <bean id="dateBean"/> <bean id="helloBean"> <property name="helloWord"> <value>Bonjour !</value> </property> <property name="date"> < ref bean="dateBean"/> </property> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml"); hello = (HelloBean) context.getBean("helloBean"); (hello.getHelloWord()); System.out.print(" C'est "); System.out.print(hello.getDate()); System.out.println("." } }
4. Liaison automatique "byType"
Modifiez le fichier de configuration dans "Trois" comme suit pour terminer la liaison automatique des attributs du bean par type.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byType"> <property name="helloWord"> <value>Bonjour !</value> </property> </bean> </haricots>
5. Liaison automatique "byName"
Modifiez le fichier de configuration dans "Trois" comme suit pour terminer la liaison automatique des attributs du bean par nom.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byName"> <property name="helloWord"> <value>Bonjour !</value> </property> </bean> </haricots>
6. liaison automatique "constructeur"
Modifiez le fichier de configuration dans "Trois" comme suit pour terminer la liaison automatique des attributs du bean selon la méthode de construction. Lors de l'établissement d'une relation de dépendance, le conteneur Spring essaiera de comparer le type d'instance du Bean dans le conteneur et le type de paramètre sur le constructeur associé pour voir si le type est cohérent. Si tel est le cas, le constructeur sera utilisé pour créer l'exemple de Bean. . S'il ne peut pas être lié, une exception org.springframework.beans.factory.UnsatisfiedDependencyException est levée.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="constructor"> <property name="helloWord"> <value>Bonjour !</value> </property> </bean> </haricots>
6. liaison automatique « détection automatique »
Modifiez le fichier de configuration dans "Trois" comme suit pour terminer la liaison automatique des attributs du bean. Cette liaison automatique signifie que Spring essaiera d'utiliser le constructeur pour gérer l'établissement des dépendances. Si cela ne fonctionne pas, essayez d'utiliser byType. classe pour l’établir.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect"> <property name="helloWord"> <value>Bonjour !</value> </property> </bean> </haricots>
7. Méthode de vérification des dépendances
Dans la liaison automatique, puisqu'il n'y a aucun moyen de voir clairement si chaque attribut a été défini à partir du fichier de définition, afin de garantir que certaines dépendances sont bien établies, vous pouvez définir la vérification des dépendances lors de l'utilisation de la balise <bean> Defining ". dependency-check", il existe quatre méthodes de vérification des dépendances : simple, objets, toutes et aucune.
simple : vérifie uniquement si les propriétés des types simples (comme les types de données primitifs ou les objets chaîne) complètent les dépendances.
objets : vérifiez si les propriétés du type d'objet complètent la dépendance.
all : Vérifiez si tous les attributs complètent les dépendances.
none : le paramètre est la valeur par défaut, indiquant que les dépendances ne sont pas vérifiées.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect" dependeny-check="all"> <property name="helloWord"> <value>Bonjour !</value> < /propriété> </bean> </beans>
8. Injection d'objets de collection
Pour les objets de collection tels que les tableaux, les listes, les ensembles et les cartes, certains objets doivent être remplis dans la collection avant l'injection. Ensuite, lorsque les objets de collection sont injectés dans les beans requis, ils peuvent également être automatiquement maintenus ou générés par le conteneur IoC de Spring. Objets de collection et injection complète de dépendances.
public class SomeBean { private String[] someStrArray; private Some[] private List someList; private Map someMap; public String[] getSomeStrArray() { return someStrArray; } public void setSomeStrArray(String[] someStrArray) someStrArray; } public Some[] getSomeObjArray() { return someObjArray } public void; setSomeObjArray(Some[] someObjArray) { this.someObjArray = someObjArray; } public List getSomeList() { return someList; } public void setSomeList(List someList) { this.someList = someList; } public Map getSomeMap() { return someMap; public void setSomeMap(Map someMap) { this.someMap = someMap } }classe publique ; Certains { private String name; public String getName() { return name; } public void setName (String name) { this.name = name;
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="some1"> <property name="name"> <value>Justin</value> </property> </bean> <bean id="some2"> <property name="name"> <value>momor</value> </property> </bean> <bean id="someBean"> <property name="someStrArray"> <list> < value>Bonjour</value> <value>Bienvenue</value> </list> </property> <property name="someObjArray"> <list> <ref bean="some1"/> <ref bean="some2"/> </list> </property> <property name="someList"> <list> <value>ListTest</value> <ref bean="some1"/> <ref bean="some2" /> </list> </property> <property name="someMap"> <map> <entry key="MapTest"> <value>Bonjour ! Justin !</value> </entry> <entry key="someKey1 "> <ref bean="some1"/> </entry> </map> </property> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext( "beans-config.xml"); SomeBean someBean = (SomeBean) context.getBean("someBean"); Objet d'injection de dépendance avec état String[] strs = (String[]) someBean.getSomeStrArray(); (Certains[]) someBean.getSomeObjArray(); for(int i = 0; i < strs.length; i++) { System.out.println(strs[i] + "," + somes[i].getName() ); } // Récupère l'objet d'injection de dépendance de type List System.out.println(); List someList = (List) someBean.getSomeList(); someList.size(); i++) { System.out.println(someList.get(i)); } // Récupère l'objet d'injection de dépendance de type Map System.out.println(); (); System.out.println(someMap.get("MapTest")); System.out.println(someMap.get("someKey1")); }
J'espère que cet article sera utile à tout le monde dans la programmation Java.