javascript
Spring创建对象的三种方式以及创建时间
創建對象的三種方式:? ? ?
? ? ? ?1、采用默認的構造函數創建
?????? 2、采用靜態工廠方法
????????? 1、寫一個靜態工廠方法類
?????????????? public class HelloWorldFactory {
????????????????? public static HelloWorld getInstance(){
???????????????????? return new HelloWorld();
????????????????? }
?????????????? }
????????? 2、在spring的配置文件中進行聲明
??????????????? <bean id="helloWorld2" class="com.itheima05.spring.bean.HelloWorldFactory"
?????????????????????????? factory-method="getInstance"></bean>
??????????????? 告訴spring容器利用HelloWorldFactory類中的getInsatance靜態方法產生對象
??????????????? 但是具體的對象的創建的過程是由程序員來完成的
?????? 3、實例工廠方法
????????? 1、寫一個實例工廠類
????????????? public class HelloWorldFactory {
????????????????? public HelloWorld getInstance(){
???????????????????? return new HelloWorld();
????????????????? }
?????????????? }
????????? 2、在spring的配置文件中
??????????? 1、<bean id="helloWorld3" class="com.itheima05.spring.bean.HelloWorldFactory2"></bean>
?????????????????? spring容器為HelloWorldFactory2創建對象
??????????? 2、<bean id="helloWorldFactory" factory-bean="helloWorld3" factory-method="getInstance"></bean>
????????????????? 告訴spring容器,利用helloWorld3對象調用getInstance方法
?
創建對象的時機
? ? ? ? ? 1、在默認的情況下,在spring容器啟動的時候創建對象
?????????????????? 在spring配置文件中,只要根據以上的三種方式的其中一種配置了,spring容器就會創建對象
?????????????????? 好處:spring容器和web容器整合的時候,當web容器啟動的時候就可以初始化spring容器了,如果這個時候
?????????????????????????? spring容器內部有錯誤,則直接會報錯
?????????????????? 如果該bean中存放著大量的數據,而且數據的初始化發生在創建對象的時候,這個時候,數據會過早的駐留在內存中
? ? ? ? ? 2、如果在spring的配置文件中一個bean的配置中有lazy-init="true",那么該bean在調用getBean方法時創建對象
?????????????????? 不好處:不能過早的發現錯誤
?????????????????? 好處:按照需求加載數據(什么時候要什么時候加載)
轉載于:https://www.cnblogs.com/lzy1991/p/5353176.html
總結
以上是生活随笔為你收集整理的Spring创建对象的三种方式以及创建时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP安装编译错误及解决办法
- 下一篇: SVN错误:Attempted to l