Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)
bean基本配置
在Spring框架中,Bean的配置和實(shí)例化是很重要的基礎(chǔ)內(nèi)容。掌握各種配置方式,才能靈活管理Bean對(duì)象。本文將全面介紹Bean的別名配置、作用范圍配置,以及構(gòu)造器實(shí)例化、工廠實(shí)例化等方式。

bean別名配置

bean作用范圍配置

不同的作用范圍,得到的結(jié)果不同



通過(guò)這種方法,可以知道 是否是同一個(gè)對(duì)象
bean實(shí)例化
bean本質(zhì)上就是對(duì)象,創(chuàng)建bean使用構(gòu)造方法完成
方式一 構(gòu)造方法實(shí)例化(常用)
首先看這個(gè)項(xiàng)目結(jié)構(gòu),我們依靠這個(gè)項(xiàng)目結(jié)構(gòu)來(lái)創(chuàng)建

創(chuàng)建 接口BookDao
package com.example.dao;
public interface BookDao {
public void save();
}創(chuàng)建 類(lèi)BookDaoimpl
package com.example.dao.impl;
import com.example.dao.BookDao;
public class BookDaoimpl implements BookDao {
public void save(){
System.out.println("瑪卡巴卡");
}
}創(chuàng)建 配置文件applicationContext.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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="bookDao" class="com.example.dao.impl.BookDaoimpl"/>
</beans>創(chuàng)建運(yùn)行程序類(lèi)AppForInstanceBook
package com.example.dao.factory;
import com.example.dao.BookDao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppForInstanceBook {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
BookDao bookDao=(BookDao) ctx.getBean("bookDao");
bookDao.save();
}
}運(yùn)行結(jié)果,成功

我們修改一段代碼,看看能不能通過(guò)構(gòu)造方法來(lái)造出一個(gè)對(duì)象

運(yùn)行后,發(fā)現(xiàn)可以

方式一小結(jié)

方式二 靜態(tài)工廠實(shí)例化(了解)
沿用方式一的代碼
創(chuàng)建 類(lèi)OrderDaoimpl創(chuàng)建 接口OrderDao創(chuàng)建 類(lèi)OrderDaoFactory,來(lái) 創(chuàng)建一個(gè)對(duì)象
package com.example.dao.factory;
public class OrderDaoFactory {
public static OrderDaoimpl getOrderDao(){
return new OrderDaoimpl();
}
}修改 配置文件 applicationContext.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/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- <bean id="orderDao" class="com.example.dao.impl.BookDaoimpl"/>-->
<bean id="bookDao" class="com.example.dao.factory.OrderDaoFactory" factory-method="getOrderDao"/>
</beans>創(chuàng)建測(cè)試 類(lèi) AppForInstanceOrder
package com.example.dao;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class AppForInstanceOrder {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
OrderDao orderDao=(OrderDao) ctx.getBean("orderDao");
orderDao.save();
}
}方式二小結(jié)

方式三 實(shí)例工廠實(shí)例化(了解)

完整代碼見(jiàn)鏈接:https://pan.quark.cn/s/80bb82c336a1
經(jīng)過(guò)本文的學(xué)習(xí),我們已經(jīng)掌握了Bean的各種配置使用方式,以及通過(guò)構(gòu)造器和工廠實(shí)例化Bean的方法。這些知識(shí)點(diǎn)在實(shí)際Spring項(xiàng)目中非常常用,一定要牢牢記住。
如果覺(jué)得實(shí)例化方式還不太理解,一定要自己動(dòng)手練習(xí)編碼,通過(guò)Debug才能真正理解其原理。學(xué)習(xí)Spring,動(dòng)手能力是非常關(guān)鍵的。
以上就是Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)的詳細(xì)內(nèi)容,更多關(guān)于Spring Bean配置和實(shí)例化方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫(kù)查詢方式
這篇文章主要介紹了用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫(kù)查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
java集合類(lèi)arraylist循環(huán)中刪除特定元素的方法
下面小編就為大家?guī)?lái)一篇Java集合類(lèi)ArrayList循環(huán)中刪除特定元素的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
通過(guò)weblogic API解析如何獲取weblogic中服務(wù)的IP和端口操作
這篇文章主要介紹了通過(guò)weblogic API解析如何獲取weblogic中服務(wù)的IP和端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Java中List常用操作比f(wàn)or循環(huán)更優(yōu)雅的寫(xiě)法示例
List是Java中比較常用的集合類(lèi),關(guān)于List接口有很多實(shí)現(xiàn)類(lèi),下面這篇文章主要給大家介紹了關(guān)于Java中List常用操作比f(wàn)or循環(huán)更優(yōu)雅的寫(xiě)法,需要的朋友可以參考下2021-11-11
深入解析Java的Servlet過(guò)濾器的原理及其應(yīng)用
這篇文章主要介紹了深入解析Java的Servlet過(guò)濾器的原理及應(yīng)用,Java編寫(xiě)的Servlet通常是一個(gè)與網(wǎng)頁(yè)一起作用于瀏覽器客戶端的程序,需要的朋友可以參考下2016-01-01
springboot RESTful以及參數(shù)注解的使用方式
這篇文章主要介紹了springboot RESTful以及參數(shù)注解的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Java并發(fā)編程學(xué)習(xí)之ThreadLocal源碼詳析
這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程學(xué)習(xí)之源碼分析ThreadLocal的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06

