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