Spring框架中Bean的三種配置和實(shí)例化方法總結(jié)
bean基本配置
在Spring框架中,Bean的配置和實(shí)例化是很重要的基礎(chǔ)內(nèi)容。掌握各種配置方式,才能靈活管理Bean對(duì)象。本文將全面介紹Bean的別名配置、作用范圍配置,以及構(gòu)造器實(shí)例化、工廠實(shí)例化等方式。
bean別名配置
bean作用范圍配置
不同的作用范圍,得到的結(jié)果不同
通過這種方法,可以知道 是否是同一個(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)來創(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é)果,成功
我們修改一段代碼,看看能不能通過構(gòu)造方法來造出一個(gè)對(duì)象
運(yùn)行后,發(fā)現(xiàn)可以
方式一小結(jié)
方式二 靜態(tài)工廠實(shí)例化(了解)
沿用方式一的代碼
創(chuàng)建 類
OrderDaoimpl創(chuàng)建 接口
OrderDao創(chuàng)建 類
OrderDaoFactory,來 創(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)過本文的學(xué)習(xí),我們已經(jīng)掌握了Bean的各種配置使用方式,以及通過構(gòu)造器和工廠實(shí)例化Bean的方法。這些知識(shí)點(diǎn)在實(shí)際Spring項(xiàng)目中非常常用,一定要牢牢記住。
如果覺得實(shí)例化方式還不太理解,一定要自己動(dòng)手練習(xí)編碼,通過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í)例多庫查詢方式
這篇文章主要介紹了用Java設(shè)計(jì)實(shí)現(xiàn)多實(shí)例多庫查詢方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03java集合類arraylist循環(huán)中刪除特定元素的方法
下面小編就為大家?guī)硪黄狫ava集合類ArrayList循環(huán)中刪除特定元素的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11通過weblogic API解析如何獲取weblogic中服務(wù)的IP和端口操作
這篇文章主要介紹了通過weblogic API解析如何獲取weblogic中服務(wù)的IP和端口操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java中List常用操作比for循環(huán)更優(yōu)雅的寫法示例
List是Java中比較常用的集合類,關(guān)于List接口有很多實(shí)現(xiàn)類,下面這篇文章主要給大家介紹了關(guān)于Java中List常用操作比for循環(huán)更優(yōu)雅的寫法,需要的朋友可以參考下2021-11-11深入解析Java的Servlet過濾器的原理及其應(yīng)用
這篇文章主要介紹了深入解析Java的Servlet過濾器的原理及應(yīng)用,Java編寫的Servlet通常是一個(gè)與網(wǎng)頁一起作用于瀏覽器客戶端的程序,需要的朋友可以參考下2016-01-01springboot RESTful以及參數(shù)注解的使用方式
這篇文章主要介紹了springboot RESTful以及參數(shù)注解的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java并發(fā)編程學(xué)習(xí)之ThreadLocal源碼詳析
這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程學(xué)習(xí)之源碼分析ThreadLocal的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06