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)建 類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)行程序類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)建 類OrderDaoimpl創(chuàng)建 接口OrderDao創(chuàng)建 類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è)試 類 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í)例化(了解)

經(jīng)過(guò)本文的學(xué)習(xí),我們已經(jīng)掌握了Bean的各種配置使用方式,以及通過(guò)構(gòu)造器和工廠實(shí)例化Bean的方法。這些知識(shí)點(diǎn)在實(shí)際Spring項(xiàng)目中非常常用,一定要牢牢記住。
如果覺得實(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)文章
MyBatis學(xué)習(xí)教程之開發(fā)Dao的方法教程
這篇文章主要給大家介紹了關(guān)于MyBatis開發(fā)Dao的相關(guān)資料,使用Mybatis開發(fā)Dao,通常有兩個(gè)方法,即原始Dao開發(fā)方法和Mapper接口開發(fā)方法。文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面來(lái)一起看看吧。2017-07-07
Java使用Spring發(fā)送郵件的實(shí)現(xiàn)代碼
本篇文章主要介紹了使用Spring發(fā)送郵件的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03
Java中數(shù)組array和列表list相互轉(zhuǎn)換
這篇文章主要介紹了Java中數(shù)組array和列表list相互轉(zhuǎn)換,在Java中,可以將數(shù)組(array)和列表(list)相互轉(zhuǎn)換,但需要注意一些細(xì)節(jié)和限制,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-09-09
mybatisPlus新增時(shí)其他字段的值和id保持一致的幾種方法
本文主要介紹了mybatisPlus新增時(shí)其他字段的值和id保持一致,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-05-05
解決JAVA項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息的問(wèn)題
這篇文章主要介紹了解決JAVA項(xiàng)目啟動(dòng)卡住,無(wú)任何異常信息的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Java中創(chuàng)建對(duì)象的5種方式總結(jié)
本篇文章主要介紹了Java中創(chuàng)建對(duì)象的5種方式總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
解決mybatis用Map返回的字段全變大寫的問(wèn)題
這篇文章主要介紹了解決mybatis用Map返回的字段全變大寫的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12

