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é)的詳細內(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-06
Java中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-01
springboot RESTful以及參數(shù)注解的使用方式
這篇文章主要介紹了springboot RESTful以及參數(shù)注解的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10
Java并發(fā)編程學(xué)習(xí)之ThreadLocal源碼詳析
這篇文章主要給大家介紹了關(guān)于Java并發(fā)編程學(xué)習(xí)之源碼分析ThreadLocal的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-06-06

