spring26-1: bean的实例方式
生活随笔
收集整理的這篇文章主要介紹了
spring26-1: bean的实例方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
三種bean實例化方式: 默認構造,靜態工廠,實例工廠。
? ?默認構造:
? ? ? ? ?<bean id="" class=""></bean> 這種方式就是使用類的默認構造創建實例對象
? ?靜態工廠:
? ? ? ? ?常用與spring整合其他框架(工具);靜態工廠,用于生成實例對象,所有的方法必須是static.
? ? ? ? ?<bean id="" class="工廠全限定類名" factory-method="靜態方法"></bean>
package com.atChina.staticFactory;public interface SomeService {void doSome(); }package com.atChina.staticFactory;public class SomeServiceImpl implements SomeService {public SomeServiceImpl(){System.out.println("SomeServiceImpl...無參構造函數..");}@Overridepublic void doSome() {System.out.println("doSome業務方法...");}// 定義bean的生命始末方法,自定義方法參與到spring創建和銷毀對象的過程中。// 初始化方法public void startUp(){System.out.println("bean的初始化方法,可以完成構造方法的功能,給屬性賦值,初始化其他對象");}// bean銷毀之前執行的方法public void endDown(){System.out.println("bean對象銷毀之前執行的方法,清楚對象,釋放內存");} }package com.atChina.staticFactory;public class MyBeanFactory {public static SomeService createService(){return new SomeServiceImpl();} } <bean id="someService2" class="com.atChina.staticFactory.MyBeanFactory" factory-method="createService" /> @Testpublic void testStaticFactory(){String configLocation = "applicationContext.xml"; // 類路徑的根目錄ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);com.atChina.staticFactory.SomeService ss = (com.atChina.staticFactory.SomeService)ctx.getBean("someService2");ss.doSome(); }實例工廠
? ?必須先有工廠實例對象,通過實例對象創建對象。提供所有的方法都是非靜態的。
package com.atChina.Factory;public interface SomeService {void doSome(); }package com.atChina.Factory;public class SomeServiceImpl implements SomeService {public SomeServiceImpl(){System.out.println("SomeServiceImpl...無參構造函數..");}@Overridepublic void doSome() {System.out.println("doSome業務方法...");}// 定義bean的生命始末方法,自定義方法參與到spring創建和銷毀對象的過程中。// 初始化方法public void startUp(){System.out.println("bean的初始化方法,可以完成構造方法的功能,給屬性賦值,初始化其他對象");}// bean銷毀之前執行的方法public void endDown(){System.out.println("bean對象銷毀之前執行的方法,清楚對象,釋放內存");} }package com.atChina.Factory;public class MyBeanFactory {public SomeService createService(){return new SomeServiceImpl();} } <!-- 創建實例工廠 --><bean id="myBeanFactory" class="com.atChina.Factory.MyBeanFactory" /><!-- 從實例工廠獲得someService --><bean id="someService3" factory-bean="myBeanFactory" factory-method="createService" /> @Testpublic void testFactory(){String configLocation = "applicationContext.xml"; // 類路徑的根目錄ApplicationContext ctx = new ClassPathXmlApplicationContext(configLocation);com.atChina.Factory.SomeService ss = (com.atChina.Factory.SomeService)ctx.getBean("someService3");ss.doSome(); }?
總結
以上是生活随笔為你收集整理的spring26-1: bean的实例方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高数:极限
- 下一篇: 前端一HTML:二十一与文本相关的属性