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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

Spring 学习笔记 3. 尚硅谷_佟刚_Spring_配置 Bean

發(fā)布時(shí)間:2025/7/14 javascript 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring 学习笔记 3. 尚硅谷_佟刚_Spring_配置 Bean 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1,bean 的配置

<bean id="helloWorld" class="com.yfy.HelloWorld"><property name="name" value="spring"></property> </bean>

class: bean 的 指的是HelloWorld的全路徑名稱(chēng),并且由于是通過(guò)反射方式創(chuàng)建Bean,因此Bean中必須有無(wú)參的構(gòu)造器

public HelloWorld(){}

如果沒(méi)有無(wú)參構(gòu)造器則會(huì)出錯(cuò),當(dāng)然如果沒(méi)有顯示聲明構(gòu)造器也無(wú)妨,因?yàn)樘摂M機(jī)會(huì)隱式創(chuàng)建一個(gè)無(wú)參的構(gòu)造器。


id:當(dāng)創(chuàng)建好一個(gè)bean之后,如何引用這個(gè)bean呢?就需要使用id.它標(biāo)識(shí)bean.并且id唯一。


?id:Bean 的名稱(chēng)。

–在 IOC 容器中必須是唯一的

–若 id 沒(méi)有指定,Spring 自動(dòng)將權(quán)限定性類(lèi)名作為 Bean 的名字

–id 可以指定多個(gè)名字,名字之間可用逗號(hào)、分號(hào)、或空格分隔

2,Spring 容器

?IOC(Inversion of Control):其思想是反轉(zhuǎn)資源獲取的方向. 傳統(tǒng)的資源查找方式要求組件向容器發(fā)起請(qǐng)求查找資源. 作為回應(yīng), 容器適時(shí)的返回資源. 而應(yīng)用了 IOC 之后, 則是容器主動(dòng)地將資源推送給它所管理的組件, 組件所要做的僅是選擇一種合適的方式來(lái)接受資源. 這種行為也被稱(chēng)為查找的被動(dòng)形式

?DI(Dependency Injection) — IOC 的另一種表述方式:即組件以一些預(yù)先定義好的方式(例如: setter 方法)接受來(lái)自如容器的資源注入. 相對(duì)于 IOC 而言,這種表述更直接

?在 Spring IOC 容器讀取 Bean 配置創(chuàng)建 Bean 實(shí)例之前, 必須對(duì)它進(jìn)行實(shí)例化. 只有在容器實(shí)例化后, 才可以從 IOC 容器里獲取 Bean 實(shí)例并使用.

?Spring 提供了兩種類(lèi)型的 IOC 容器實(shí)現(xiàn).

–BeanFactory: IOC 容器的基本實(shí)現(xiàn).

–ApplicationContext: 提供了更多的高級(jí)特性. 是 BeanFactory 的子接口.

–BeanFactory 是 Spring 框架的基礎(chǔ)設(shè)施,面向 Spring 本身;ApplicationContext 面向使用 Spring 框架的開(kāi)發(fā)者,幾乎所有的應(yīng)用場(chǎng)合都直接使用 ApplicationContext 而非底層的 BeanFactory

–無(wú)論使用何種方式, 配置文件時(shí)相同的.

?ApplicationContext 的主要實(shí)現(xiàn)類(lèi):

–ClassPathXmlApplicationContext:從 類(lèi)路徑下加載配置文件

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

–FileSystemXmlApplicationContext: 從文件系統(tǒng)中加載配置文件

?ConfigurableApplicationContext 擴(kuò)展于 ApplicationContext,新增加兩個(gè)主要方法:refresh() 和 close(),讓 ApplicationContext 具有啟動(dòng)、刷新和關(guān)閉上下文的能力

?ApplicationContext 在初始化上下文時(shí)就實(shí)例化所有單例的 Bean。

?WebApplicationContext 是專(zhuān)門(mén)為 WEB 應(yīng)用而準(zhǔn)備的,它允許從相對(duì)于 WEB 根目錄的路徑中完成初始化工作

創(chuàng)建好容器之后需要從IOC容器獲取bean,下面有些重載的方法,一般使用下面的方法,就是取得bean中的id名稱(chēng),記得要強(qiáng)轉(zhuǎn)。

HelloWorld helloWorld =(HelloWorld) applicationContext.getBean("helloWorld");

3,屬性注入方式

?Spring 支持 3 種依賴(lài)注入的方式

–屬性注入

–構(gòu)造器注入

–工廠方法注入(很少使用,不推薦)

?屬性注入即通過(guò) setter 方法注入Bean 的屬性值或依賴(lài)的對(duì)象

?屬性注入使用 <property> 元素, 使用 name 屬性指定 Bean 的屬性名稱(chēng),value 屬性或 <value> 子節(jié)點(diǎn)指定屬性值

?屬性注入是實(shí)際應(yīng)用中最常用的注入方式

?

4,構(gòu)造方法注入

??? ????? ?通過(guò)構(gòu)造方法注入Bean 的屬性值或依賴(lài)的對(duì)象,它保證了 Bean 實(shí)例在實(shí)例化后就可以使用。

????????? ?構(gòu)造器注入在 <constructor-arg> 元素里聲明屬性, <constructor-arg> 中沒(méi)有 name 屬

???????? 演示一下:添加Car類(lèi)

?????????

??????? 代碼

package com.yfy; public class Car {private String brand;private String crop;private int price;private int maxSpeed;public Car(String brand, String crop, int price) {super();this.brand = brand;this.crop = crop;this.price = price;}@Overridepublic String toString() {return "Car [brand=" + brand + ", crop=" + crop + ", price=" + price + ", maxSpeed=" + maxSpeed + "]";} }

配置bean:

主方法調(diào)用:

結(jié)果:

要注意的是:

上面的構(gòu)造器只是為了其中的前三個(gè)屬性進(jìn)行初始化,bean中的配置其實(shí)是按照順序來(lái)初始化的,當(dāng)然如果構(gòu)造器非常多,如何對(duì)bean進(jìn)行配置呢?、

例如如下的代碼:

其中有兩個(gè)構(gòu)造器,如果在按照上面的方法肯定行不通的,因此有下面的解決方案

(1)可以創(chuàng)建index:<constructor-arg value="audi" index="0"></constructor-arg>

(2)構(gòu)造函數(shù)也是重載的,區(qū)分重載的是參數(shù)個(gè)數(shù)和類(lèi)型,個(gè)數(shù)不同好辦,相同的時(shí)候就可以在后面注明類(lèi)型

?????? <constructor-arg value="shanghai" type="java.lang.String"></constructor-arg>

(3)通過(guò)上面的圖片可以看出索引和類(lèi)型可以混合使用。

這樣的話就沒(méi)什么問(wèn)題

轉(zhuǎn)載于:https://www.cnblogs.com/yefengyu/p/5094765.html

總結(jié)

以上是生活随笔為你收集整理的Spring 学习笔记 3. 尚硅谷_佟刚_Spring_配置 Bean的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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