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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

03-spring bean

發(fā)布時(shí)間:2025/5/22 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 03-spring bean 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 一、spring 基于 xml 的 IOC 環(huán)境搭建和入門
    • 1.pom.xml
    • 2.類
    • 3. bean.xml
    • 4.主函數(shù)
    • 5.總結(jié)
  • 二、BeanFactory和ApplicationContext的區(qū)別
  • 三、spring 中 bean 的細(xì)節(jié)之三種創(chuàng)建 Bean 對(duì)象的方式
    • 1. 第一種方式:使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建。
    • 2.第二種方式:
    • 3.第三種方式:
  • 四、spring中bean的細(xì)節(jié)之作用范圍
    • 1.bean標(biāo)簽訂單scope屬性:
    • 2.bean 對(duì)象的生命周期
      • Ⅰ單例對(duì)象
      • Ⅱ多例對(duì)象

一、spring 基于 xml 的 IOC 環(huán)境搭建和入門

1.pom.xml

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>spring02</groupId><artifactId>spring02</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.1.9.RELEASE</version></dependency></dependencies></project>

2.類

將上次的耦合和解耦的筆記放進(jìn)去

3. bean.xml

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><!--把對(duì)象的創(chuàng)建交給 spring 來管理--><bean id="accountService" class="com.service.impl.AccountServiceImpl"/><bean id="accountDao" class="com.dao.impl.AccountDaoImpl"/> </beans>

4.主函數(shù)

public class Client {/*** 獲取 spring 的 ioc 核心容器,并根據(jù) id 獲取對(duì)象* @param args*/public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");IAccountService accountService=(IAccountService)ac.getBean("accountService");IAccountDao accountDao=ac.getBean("accountDao",IAccountDao.class);System.out.println(accountService);System.out.println(accountDao);} }

5.總結(jié)

ApplicationContext的三個(gè)常用實(shí)現(xiàn)類:

  • ClassPathXmlApplicationContext:他可以加載類路徑下的配置文件,要求配置文件必須在類路徑下,不在的話,加載不了。

  • FileSystemXmlApplicationContext:他可以加載磁盤任意路勁下的配置文件(必須有訪問權(quán)限)
  • AnnotationConfigApplicationContext:它是用于讀取注解創(chuàng)建容器的。

  • 獲取配置文件對(duì)應(yīng)實(shí)現(xiàn)類有兩種方法:

  • 強(qiáng)制轉(zhuǎn)換
    • IAccountService accountService=(IAccountService)ac.getBean("accountService");
  • IAccountDao accountDao=ac.getBean("accountDao",IAccountDao.class);
  • 二、BeanFactory和ApplicationContext的區(qū)別

    public static void main(String[] args) {ApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");IAccountService accountService=(IAccountService)ac.getBean("accountService");IAccountDao accountDao=ac.getBean("accountDao",IAccountDao.class);System.out.println(accountService);System.out.println(accountDao);/*-------BeanFactory-------------*/Resource resource=new ClassPathResource("bean.xml");BeanFactory beanFactory=new XmlBeanFactory(resource);IAccountService as=(IAccountService)beanFactory.getBean("accountService");System.out.println(as);} }

    核心容器接口兩個(gè)引發(fā)出的問題:

  • ApplicationContext: (單例對(duì)象適用)

    他在創(chuàng)建核心容器時(shí),創(chuàng)建對(duì)象采取的策略是采用立即加載的方式。也就是說,只要一讀完配置文件馬上就創(chuàng)建配置文件的對(duì)象。

  • BeanFactory: (多例對(duì)象適用)

    他在創(chuàng)建核心容器時(shí),創(chuàng)建對(duì)象采取的策略是采用延遲加載的方式。也就是說,什么時(shí)候根據(jù) id 獲取對(duì)象了,什么時(shí)候才真正的創(chuàng)建對(duì)象。

  • 三、spring 中 bean 的細(xì)節(jié)之三種創(chuàng)建 Bean 對(duì)象的方式

    1. 第一種方式:使用默認(rèn)構(gòu)造函數(shù)創(chuàng)建。

    • 在spring的配置文件中使用bean標(biāo)簽,配以id和class屬性之后,且沒有其他屬性和標(biāo)簽時(shí)。 采用的就是默認(rèn)構(gòu)造函數(shù)創(chuàng)建bean對(duì)象,此時(shí)如果類中沒有默認(rèn)構(gòu)造函數(shù),則對(duì)象無法創(chuàng)建
    <bean id="accountService" class="com.service.impl.AccountServiceImpl"/> <bean id="accountDao" class="com.dao.impl.AccountDaoImpl"/>

    2.第二種方式:

    • 使用普通工廠中的方法創(chuàng)建對(duì)象(使用某個(gè)類中的方法創(chuàng)建對(duì)象,并存入spring容器)
    package com.factory;import com.service.IAccountService; import com.service.impl.AccountServiceImpl;/* 模擬一個(gè)工廠類(該類可能存在于jar包中,我們無法通過修改源碼的方式來提供默認(rèn)構(gòu)造函數(shù)) */ public class InstanceFactory {public IAccountService getAccountService(){return new AccountServiceImpl();} } <bean id="instanceFactory" class="com.factory.InstanceFactory"/> <bean id="accountService2" factory-bean="instanceFactory" factory-method="getAccountService"/>

    3.第三種方式:

    • 使用工廠中的靜態(tài)方法創(chuàng)建對(duì)象(使用某個(gè)類中的靜態(tài)方法創(chuàng)建對(duì)象,并存入spring容器)
    package com.factory;import com.service.IAccountService; import com.service.impl.AccountServiceImpl;/* 模擬一個(gè)工廠類(該類可能存在于jar包中,我們無法通過修改源碼的方式來提供默認(rèn)構(gòu)造函數(shù)) */ public class StaticFactory {public static IAccountService getAccountService(){return new AccountServiceImpl();} } <bean id="accountService3" class="com.factory.StaticFactory" factory-method="getAccountService"/>

    四、spring中bean的細(xì)節(jié)之作用范圍

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

    1.bean標(biāo)簽訂單scope屬性:

    作用:用于指定bean作用范圍 取值:常用的就是單例的于多例的

  • singleton:單例的(默認(rèn)值)

  • prototype:多例的

  • request:作用與web應(yīng)用的請(qǐng)求范圍

  • session:作用于web應(yīng)用的會(huì)話范圍

  • global-session:作用于集群環(huán)境的會(huì)話范圍(全局會(huì)話范圍),當(dāng)不是集群環(huán)境時(shí),它就是session

  • 對(duì)于 global-session 的理解

    global session 可以理解為全局 session

    2.bean 對(duì)象的生命周期

    Ⅰ單例對(duì)象

  • 出生:當(dāng)容器創(chuàng)建時(shí)對(duì)象出生

  • 活著:只要容器還在,對(duì)象一直活著

  • 死亡:單例對(duì)象的生命周期和容器相同多例對(duì)象

  • 實(shí)現(xiàn)類

    public class AccountServiceImpl implements IAccountService {private IAccountDao accountDao=new AccountDaoImpl();public void saveAccount() {accountDao.saveAccount();}public void init(){System.out.println("對(duì)象初始化");}public void destroy(){System.out.println("對(duì)象銷毀");} }

    xml 文件

    <bean id="accountService" class="com.service.impl.AccountServiceImpl" scope="singleton"init-method="init" destroy-method="destroy"/><bean id="accountDao" class="com.dao.impl.AccountDaoImpl"/>

    主函數(shù)

    public class Client {public static void main(String[] args) {ClassPathXmlApplicationContext ac=new ClassPathXmlApplicationContext("bean.xml");IAccountService as=ac.getBean("accountService",IAccountService.class);as.saveAccount();ac.close();} }

    運(yùn)行結(jié)果

    對(duì)象初始化 保存成功 對(duì)象銷毀

    Ⅱ多例對(duì)象

  • 出生:當(dāng)我們使用時(shí) spring 框架為我們創(chuàng)建

  • 活著:對(duì)象只要是在使用過程中就一直活著

  • 死亡:當(dāng)對(duì)象長(zhǎng)時(shí)間不用,且沒有別的對(duì)象引用時(shí),由Java的垃圾回收器回收

  • 轉(zhuǎn)載于:https://www.cnblogs.com/zuiren/p/11415413.html

    總結(jié)

    以上是生活随笔為你收集整理的03-spring bean的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲av综合永久无码精品天堂 | 国产视频三区 | 天天综合中文字幕 | 久久精品三级 | av一区免费| 91香蕉黄| 国产美女精品人人做人人爽 | 哺乳期给上司喂奶hd | 日韩视频在线观看 | 黄黄视频在线观看 | 一区二区91 | 第四色影音先锋 | 久久岛国 | 国产高清一区在线观看 | 亚洲三区视频 | 亚洲国产一级 | 一级黄色免费网站 | 欧美精品色视频 | 国产原创麻豆 | 成人激情开心网 | 国产精品怡红院 | 免费禁漫天堂a3d | 欧美精品video | 超碰加勒比 | 免费天堂av | jizz一区| aa黄色大片 | 黄色国产在线观看 | 久久精品美乳 | 一级免费看片 | 欧美日韩精品一区二区三区 | 成年人在线视频 | 日本人妻熟妇久久久久久 | 色天使在线视频 | 女人又爽又黄免费女仆 | xxxxxx欧美 | 在线视频精品免费 | 午夜秋霞影院 | 国产区一区二 | 在线免费精品视频 | 欧美壮男野外gaytube | asian性开放少妇pics | 亚洲精品久久久久久 | 久久伊人网站 | 亚洲自拍偷拍色图 | 成人国产精品久久 | 国产激情久久久久久熟女老人av | 91亚洲精品久久久蜜桃网站 | 日韩高清精品免费观看 | 国产91福利 | 丝袜老师办公室里做好紧好爽 | 欧美一区二区三区大屁股撅起来 | 日韩插插插 | 国产精品一卡二卡 | 国产成人麻豆精品午夜在线 | 免费色片网站 | 人妻精品无码一区二区三区 | 人妻精品一区一区三区蜜桃91 | www五月天com | 91一区二区三区四区 | 美女裸体网站久久久 | 黄毛片在线观看 | 精品一区二区在线免费观看 | 欧美一区二区三区小说 | 国产成人精品一二三区 | 麻豆精品在线看 | 亚洲国产一级 | 日韩免费av网站 | 成人羞羞国产免费游戏 | 亚洲黄色在线免费观看 | 日韩毛片一区二区三区 | 欧美精品激情 | 欧美激情欧美激情在线五月 | 久久狠狠高潮亚洲精品 | 中文字幕在线免费看线人 | 高潮毛片又色又爽免费 | 国产乱码一区 | 免费在线一区二区 | 波多野结衣在线一区二区 | 男女免费观看视频 | 深夜国产视频 | 天堂中文在线最新 | 亚洲黄色免费在线观看 | 大尺度做爰呻吟62集 | 正在播放超嫩在线播放 | 亚洲熟妇中文字幕五十中出 | 久久久久久久久久久99 | 欧美肥老妇视频 | 国产无套精品一区二区三区 | 国产成人不卡 | 乌克兰做爰xxxⅹ性视频 | 奇米影视在线播放 | 双性人hdsexvideos | 91情侣在线| 农民人伦一区二区三区 | 日本黄色美女视频 | 午夜高潮视频 | 亚洲精品在线免费 | 熟女视频一区二区三区 |