Maison  >  Article  >  Java  >  Une brève discussion sur l'initialisation des haricots dans des conteneurs à ressort

Une brève discussion sur l'initialisation des haricots dans des conteneurs à ressort

高洛峰
高洛峰original
2017-01-24 15:19:241261parcourir

Lorsque nous ajoutons un bean dans le conteneur spring, si son attribut scope n'est pas spécifié, la valeur par défaut est singleton, qui est un singleton.

Par exemple, déclarez d'abord un bean :

public class People {
 private String name;
 private String sex;
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
   
}

Configurez

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">
  
 <bean id="people" class="People" ></bean>
 
</beans>

dans le applicationContext.xml fichier

Ensuite, récupérez-le via le conteneur Spring :

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
  
  
public class SpringTest {
  
 public static void main(String[] args) {
  ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
  People p1=(People) context.getBean("people");
  People p2=(People) context.getBean("people");
  System.out.println(p1);
  System.out.println(p2);
 }
  
}

Après l'exécution, vous pouvez voir l'entrée de p1 et p2 Le contenu est le même, indiquant que les haricots au printemps sont des singletons.

Si vous ne voulez pas de bean singleton, vous pouvez changer l'attribut scope en prototype

<bean id="people" class="People" scope="prototype" ></bean>

De cette façon, les haricots obtenus via le conteneur Spring ne sont pas des célibataires.

Le conteneur Spring crée automatiquement des objets pour tous les beans après le démarrage par défaut. Si vous souhaitez les créer lorsque nous obtenons les beans, vous pouvez utiliser l'attribut lazy-init

Cet attribut en a trois. Valeur par défaut, vrai, faux. La valeur par défaut est default. Cette valeur est la même que false. L'objet bean est créé au démarrage du conteneur spring. Lorsqu'il est spécifié comme true,

ne créera l'objet que lorsque nous obtiendrons le bean.

L'article ci-dessus discutant brièvement de l'initialisation des beans dans le conteneur Spring est tout le contenu partagé par l'éditeur. J'espère qu'il pourra vous donner une référence, et j'espère que vous soutiendrez le site Web PHP chinois.

Pour plus d'articles liés à l'initialisation des beans dans les conteneurs Spring, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn