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 !