国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

網(wǎng)頁(yè)設(shè)計(jì)公司金華關(guān)鍵詞排名優(yōu)化公司外包

網(wǎng)頁(yè)設(shè)計(jì)公司金華,關(guān)鍵詞排名優(yōu)化公司外包,網(wǎng)站家建設(shè)培訓(xùn)學(xué)校,友匯網(wǎng)網(wǎng)站建設(shè)文章目錄 前言一、Spring 項(xiàng)目的創(chuàng)建1.1 創(chuàng)建 Maven 項(xiàng)目1.2 添加 Spring 框架支持1.3 添加啟動(dòng)類 二、儲(chǔ)存 Bean 對(duì)象2.1 創(chuàng)建 Bean2.1 將 Bean 注冊(cè)到 Spring 容器 三、獲取并使用 Bean 對(duì)象3.1 獲取Spring 上下文3.2 ApplicationContext 和 BeanFactory 的區(qū)別3.3 獲取指定的…

文章目錄

  • 前言
  • 一、Spring 項(xiàng)目的創(chuàng)建
    • 1.1 創(chuàng)建 Maven 項(xiàng)目
    • 1.2 添加 Spring 框架支持
    • 1.3 添加啟動(dòng)類
  • 二、儲(chǔ)存 Bean 對(duì)象
    • 2.1 創(chuàng)建 Bean
    • 2.1 將 Bean 注冊(cè)到 Spring 容器
  • 三、獲取并使用 Bean 對(duì)象
    • 3.1 獲取Spring 上下文
    • 3.2 ApplicationContext 和 BeanFactory 的區(qū)別
    • 3.3 獲取指定的 Bean 對(duì)象
  • 四、總結(jié)


前言

通過前面的文章我們知道了,Spring 其實(shí)就是一個(gè)包含了眾多工具的 IoC 容器。既然是容器那么主要就涉及到兩個(gè)操作,即:

  • 將對(duì)象儲(chǔ)存到 Spring 容器中
  • 使用的使用將對(duì)象從 Spring 容器中取出

因此,學(xué)習(xí) Spring 容器,主要就是學(xué)習(xí)它的存取操作。下文詳細(xì)介紹了 Spring 項(xiàng)目的創(chuàng)建與使用。

一、Spring 項(xiàng)目的創(chuàng)建

下文將以 Maven 的方式來創(chuàng)建一個(gè) Spring 項(xiàng)目,創(chuàng)建 Spring 項(xiàng)目的方式與 Servlet 類似,主要分為以下三步驟:

  1. 創(chuàng)建 Maven 項(xiàng)目;
  2. 添加 Spring 框架支持;
  3. 添加啟動(dòng)類。

以下就是圍繞這三個(gè)步驟來創(chuàng)建 Spring 項(xiàng)目的具體過程。

1.1 創(chuàng)建 Maven 項(xiàng)目


創(chuàng)建好后其目錄結(jié)構(gòu)如下:

1.2 添加 Spring 框架支持

  1. 在 Maven 中央倉(cāng)庫(kù)搜索 Spring,選擇 “Spring Context”:
  2. 選擇 5.xxxx版本

  1. 選擇 Maven,然后將其復(fù)制粘貼到 pom.xml 文件中


最后的 pom.xml文件樣式如下:

1.3 添加啟動(dòng)類

即在 Java 目錄下創(chuàng)建一個(gè)類,其中包含一個(gè) main 方法即為啟動(dòng)類:

二、儲(chǔ)存 Bean 對(duì)象

什么是 Bean:

在 Spring 框架中,Bean 是一個(gè)非常重要的概念,它是Spring容器中被管理和維護(hù)的對(duì)象。Bean 可以是任何的Java對(duì)象,例如 POJO(Plain Old Java Object)、實(shí)體類、服務(wù)類等。這些對(duì)象在 Spring 容器中被實(shí)例化、組裝、管理和銷毀,以提供各種功能和服務(wù)。

儲(chǔ)存 Bean 分為兩個(gè)步驟:

  1. 先創(chuàng)建 Bean 類;
  2. 然后將創(chuàng)建的 Bean 注冊(cè)到 Spring 容器中。

2.1 創(chuàng)建 Bean

此處以一個(gè) Student 類為例:

public class Student {public Student(){System.out.println("init student");}public void sayHi(){System.out.println("Hi, I am a student.");}
}

2.1 將 Bean 注冊(cè)到 Spring 容器

要想將 Bean 對(duì)象注冊(cè)到 Spring 容器中,首先需要在 resources 目錄下創(chuàng)建一個(gè)配置文件,一般取名為 spring-config.xml

Spring 配置文件的固定為以下內(nèi)容:

<?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/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

然后將 Student 對(duì)象注冊(cè)到 Spring 中,即在 <beans>添加以下配置:

其中 id 字段表示給 Bean 取的名,class 字段則是 包名 + 類名。

三、獲取并使用 Bean 對(duì)象

獲取并使用 Bean 對(duì)象也大致可分為以下三步:

  1. 獲取 Spring 上下文對(duì)象,因?yàn)閷?duì)象都交給 Spring 管理了,所有要獲取 Spring 中的 Bean,首先就需要獲取 Spring;
  2. 通過回去的 Spring 上下文對(duì)象,獲取指定的 Bean 對(duì)象;
  3. 使用 Bean 對(duì)象。

3.1 獲取Spring 上下文

獲取 Spring 上下文對(duì)象的方式主要有兩個(gè),即使用ApplicationContextBeanFactory來獲取。

1. 使用ApplicationContext獲取

    public static void main(String[] args) {ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");}

2. 使用BeanFactory獲取

    public static void main(String[] args) {BeanFactory beanFactory =new XmlBeanFactory(new ClassPathResource("spring-config.xml"));}

3.2 ApplicationContext 和 BeanFactory 的區(qū)別

此時(shí),分別執(zhí)行 ApplicationContextBeanFactory 獲取 Spring 上下文對(duì)象的 main方法:

ApplicationContext


此時(shí),可以發(fā)現(xiàn)當(dāng)使用 ApplicationContext獲取 Spring 上下文的時(shí)候,會(huì)立即初始化 Spring 容器中的 Bean 對(duì)象。

BeanFactory


當(dāng)使用BeanFactory 獲取 Spring 上下文的時(shí)候,并沒有立即初始化 Spring 中的 Bean 對(duì)象,而是在獲取 Bean 對(duì)象的時(shí)候才初始化,即是一種懶加載模式。

ApplicationContextBeanFactory之間的區(qū)別可總結(jié)如下:

繼承關(guān)系和功能層面:

  • ApplicationContext 接口繼承了 BeanFactory 接口,其中 BeanFactory 提供了基礎(chǔ)的訪問容器的能力,而 ApplicationContext 除了繼承 BeanFactory的所有功能之外,還擁有獨(dú)特的功能,比如添加了對(duì)國(guó)際化的支持、資源的訪問支持、事件傳播等方面的支持。

性能方面:

  • ApplicationContext 是?次性加載并初始化所有的 Bean 對(duì)象,而 BeanFactory 是需要哪個(gè) Bean 對(duì)象的時(shí)候才會(huì)去加載,因此更加輕量。
  • 因此當(dāng)性能要求較高而內(nèi)存充足的場(chǎng)景下推薦使用 ApplicationContext;而在內(nèi)存空間較小,對(duì)性能要求不高的場(chǎng)景下推薦使用BeanFactory

3.3 獲取指定的 Bean 對(duì)象

  1. 直接通過 Bean 對(duì)象的名稱獲取
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
Student student = (Student) context.getBean("student");

getBean方法直接通過 Bean 對(duì)象的名稱獲取返回的是一個(gè) Object 對(duì)象,因此需要強(qiáng)制類型轉(zhuǎn)換。

  1. 通過 Bean 的類型獲取
ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
Student student = context.getBean(Student.class);

getBean方法通過 Bean 對(duì)象的類型獲取,此時(shí)不需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,但是這種方法存在一個(gè)問題:如果當(dāng) Spring 容器中存在多個(gè)相同類型的 Bean 對(duì)象的時(shí)候就會(huì)出現(xiàn)歧義,即找不到返回哪個(gè)對(duì)象。

比如在 Spring 容器中再添加一個(gè) Student 對(duì)象:

此時(shí)啟動(dòng) main 函數(shù)的時(shí)候,就會(huì)出現(xiàn)如下問題:


此時(shí),Spring 容器中存在兩個(gè)相同類型的 Bean 對(duì)象,而通過類型獲取的話,就不知道獲取哪一個(gè)了。因此要解決這個(gè)問題就可以采用 通過 Bean 名稱 + 類型獲取。

  1. 通過 Bean 名稱 + 類型獲取
    public static void main(String[] args) {ApplicationContext context =new ClassPathXmlApplicationContext("spring-config.xml");Student student = context.getBean("student", Student.class);Student student2 = context.getBean("student2", Student.class);student.sayHi();student2.sayHi();}

此時(shí),通過 Bean 名稱 + 類型獲取的方式,即使是 Spring 容器中存在多個(gè)相同類型的 Bean 對(duì)象,但由于其名稱不同,也能夠正確獲取到指定的 Bean 對(duì)象。

四、總結(jié)

以上詳細(xì)介紹了 Spring 項(xiàng)目的創(chuàng)建和使用過程,下面是對(duì)其整個(gè)流程的總結(jié)。

  1. 通過 Maven 項(xiàng)目創(chuàng)建 Spring 項(xiàng)目,并且還要添加對(duì) Spring 框架的支持;
  2. 創(chuàng)建 Bean 對(duì)象,然后通過 spring-config.xml 配置文件將其儲(chǔ)存到 Spring 容器中;
  3. 獲取 Bean 對(duì)象:
    • 首先通過 ApplicationContext 或者 BeanFactory 獲取配置文件,即獲取 Spring 上下文對(duì)象。
    • 通過 getBean 方法獲取 Bean 對(duì)象。
    • 使用 Bean 對(duì)象。
http://aloenet.com.cn/news/30352.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)利益分析合肥網(wǎng)站seo推廣
  • 建立健全制度如何推廣seo
  • 網(wǎng)站建設(shè) 售后服務(wù)seo下拉優(yōu)化
  • 鄭州正規(guī)網(wǎng)站設(shè)計(jì)價(jià)格seo門戶
  • 漳州網(wǎng)站優(yōu)化下載百度導(dǎo)航app
  • 交友網(wǎng)站建設(shè)惠城網(wǎng)站設(shè)計(jì)
  • 任縣企業(yè)做網(wǎng)站怎么推廣淘寶店鋪
  • 織夢(mèng)手機(jī)網(wǎng)站源碼下載可口可樂軟文范例
  • 淘寶客優(yōu)惠券網(wǎng)站怎么做的google怎么推廣
  • 怎么在網(wǎng)上做公司網(wǎng)站如何創(chuàng)建自己的網(wǎng)址
  • 建設(shè)兵團(tuán)12師教育局網(wǎng)站淘寶一個(gè)關(guān)鍵詞要刷多久
  • wordpress自己寫代碼百度自然排名優(yōu)化
  • 煙臺(tái)龍口網(wǎng)站建設(shè)百度收錄最新方法
  • 天津建設(shè)銀行網(wǎng)站深圳百度推廣代理商
  • 保定建設(shè)信息網(wǎng)站百度外推代發(fā)排名
  • 有一個(gè)網(wǎng)站叫浪什么網(wǎng)站優(yōu)化比較好的公司
  • 導(dǎo)購(gòu)網(wǎng)站怎么做有特色友情鏈接頁(yè)面
  • 網(wǎng)站怎么做 吸引人上海做關(guān)鍵詞推廣企業(yè)
  • 如何做網(wǎng)站推廣的方案設(shè)計(jì)企業(yè)推廣哪個(gè)平臺(tái)好
  • web網(wǎng)站開發(fā)的設(shè)計(jì)思想公司域名查詢官網(wǎng)
  • 做企業(yè)網(wǎng)站首頁(yè)尺寸百度關(guān)鍵詞網(wǎng)站排名優(yōu)化軟件
  • 如何在導(dǎo)航網(wǎng)站上做鏈接優(yōu)化近義詞
  • 做網(wǎng)站外包網(wǎng)頁(yè)設(shè)計(jì)與制作代碼
  • 長(zhǎng)沙建站公司模板百度seo快速排名優(yōu)化軟件
  • 福建省華榮建設(shè)集團(tuán)有限公司網(wǎng)站長(zhǎng)春網(wǎng)絡(luò)推廣優(yōu)化
  • 個(gè)人網(wǎng)站logo青島網(wǎng)站制作推廣
  • 免費(fèi)域名查詢網(wǎng)站推廣app最快的方法
  • 創(chuàng)建一個(gè)網(wǎng)頁(yè)多少錢sem優(yōu)化托管
  • wordpress ios 默認(rèn)合肥seo網(wǎng)站排名
  • 專注做蔬菜的網(wǎng)站汕頭seo管理