日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

把对象的创建交给spring来管理——  1.创建bean的三种方式     2.bean对象的作用范围     3.bean对象的生命周期

發(fā)布時間:2025/4/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 把对象的创建交给spring来管理——  1.创建bean的三种方式     2.bean对象的作用范围     3.bean对象的生命周期 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

把對象的創(chuàng)建交給spring來管理


spring對bean的管理細節(jié)
??? 1.創(chuàng)建bean的三種方式
??? 2.bean對象的作用范圍
??? 3.bean對象的生命周期


創(chuàng)建Bean的三種方式

第一種方式:使用默認構造函數(shù)創(chuàng)建。在spring的配置文件中使用bean標簽,配以id和class屬性之后,且沒有其他屬性和標簽時。采用的就是默認構造函數(shù)創(chuàng)建bean對象,此時如果類中沒有默認構造函數(shù),則對象無法創(chuàng)建。

? ? ? ?

第二種方式: 使用普通工廠中的方法創(chuàng)建對象(使用某個類中的方法創(chuàng)建對象,并存入spring容器)

InstanceFactory.java

package com.itheima.factory;import com.itheima.service.IAccountService; import com.itheima.service.impl.AccountServiceImpl;/*** 模擬一個工廠類(該類可能是存在于jar包中的,我們無法通過修改源碼的方式來提供默認構造函數(shù))*/ public class InstanceFactory {public IAccountService getAccountService(){return new AccountServiceImpl();} } 第三種方式:使用工廠中的靜態(tài)方法創(chuàng)建對象(使用某個類中的靜態(tài)方法創(chuàng)建對象,并存入spring容器)

StaticFactory.java

package com.itheima.factory;import com.itheima.service.IAccountService; import com.itheima.service.impl.AccountServiceImpl;/*** 模擬一個工廠類(該類可能是存在于jar包中的,我們無法通過修改源碼的方式來提供默認構造函數(shù))*/ public class StaticFactory {public static IAccountService getAccountService(){return new AccountServiceImpl();} }

bean的作用范圍調(diào)整

bean標簽的scope屬性:
?????? 作用:用于指定bean的作用范圍
?????? 取值: 常用的就是單例的和多例的
?????????? singleton:單例的(默認值)
?????????? prototype:多例的
?????????? request:作用于web應用的請求范圍
?????????? session:作用于web應用的會話范圍
?????????? global-session:作用于集群環(huán)境的會話范圍(全局會話范圍),當不是集群環(huán)境時,它就是session



bean對象的生命周期

? ? ? ?單例對象
?????????? 出生:當容器創(chuàng)建時對象出生
?????????? 活著:只要容器還在,對象一直活著
?????????? 死亡:容器銷毀,對象消亡
?????????? 總結:單例對象的生命周期和容器相同

?????? 多例對象
?????????? 出生:當我們使用對象時spring框架為我們創(chuàng)建
?????????? 活著:對象只要是在使用過程中就一直活著。
?????????? 死亡:當對象長時間不用,且沒有別的對象引用時,由Java的垃圾回收器回收

IAccountService.java

package com.itheima.service;/*** 賬戶業(yè)務層的接口*/ public interface IAccountService {/*** 模擬保存賬戶*/void saveAccount(); }

AccountServiceImpl.java

package com.itheima.service.impl;import com.itheima.service.IAccountService;/*** 賬戶的業(yè)務層實現(xiàn)類*/ public class AccountServiceImpl implements IAccountService {public AccountServiceImpl(){System.out.println("對象創(chuàng)建了");}public void saveAccount(){System.out.println("service中的saveAccount方法執(zhí)行了。。。");}public void init(){System.out.println("對象初始化了。。。");}public void destroy(){System.out.println("對象銷毀了。。。");}}

Client.java

package com.itheima.ui;import com.itheima.service.IAccountService; import org.springframework.context.support.ClassPathXmlApplicationContext;/*** 模擬一個表現(xiàn)層,用于調(diào)用業(yè)務層*/ public class Client {public static void main(String[] args) {//1.獲取核心容器對象ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");//2.根據(jù)id獲取Bean對象IAccountService as = (IAccountService)ac.getBean("accountService");as.saveAccount();//手動關閉容器ac.close();} }

總結

以上是生活随笔為你收集整理的把对象的创建交给spring来管理——  1.创建bean的三种方式     2.bean对象的作用范围     3.bean对象的生命周期的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。