最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring ioc的簡(jiǎn)單實(shí)例及bean的作用域?qū)傩越馕?/h1>
 更新時(shí)間:2017年12月26日 15:02:18   作者:等想出來(lái)再取  
這篇文章主要介紹了spring ioc的簡(jiǎn)單實(shí)例及bean的作用域?qū)傩越馕?,具有一定借鑒價(jià)值,需要的朋友可以參考下

IoC(Inversion if Control)-控制反轉(zhuǎn)是Spring倆大核心技術(shù)之一,IoC一般分為倆種類(lèi)型:依賴(lài)注入(Dependency Injection,簡(jiǎn)稱(chēng)DI)和依賴(lài)查找(Dependency Lookup)

使用示例:

1、新建工程并導(dǎo)入Spring相關(guān)jar包。

2、新建數(shù)據(jù)訪問(wèn)層及業(yè)務(wù)邏輯層

代碼結(jié)構(gòu):

代碼示例:

/**
 * 實(shí)體Bean
 * @author BC
 *
 */
public class User {
	private Integer id;
	private String userName;
	private String passWord;
	//get set方法略
}
/**
 * 數(shù)據(jù)訪問(wèn)層接口
 * @author BC
 *
 */
public interface UserDaoInterface {
	/**查詢(xún)所有用戶信息*/
	public List<User> getUserList();
}
/**
 * 數(shù)據(jù)訪問(wèn)層實(shí)現(xiàn)類(lèi)
 * @author BC
 *
 */
public class UserDaoImpl implements UserDaoInterface {
	/**模擬數(shù)據(jù)庫(kù)數(shù)據(jù)*/
	private List<User> userList;
	public UserDaoImpl() {
		userList = new ArrayList<User>();
		User u = new User(1, "張三", "123");
		userList.add(u);
		u = new User(2, "李四", "456");
		userList.add(u);
		u = new User(3, "王五", "789");
		userList.add(u);
		u = new User(4, "趙六", "233");
		userList.add(u);
	}
	@Override
	 public List<User> getUserList() {
		return userList;
	}
}
/**
 * 業(yè)務(wù)邏輯層接口
 * @author BC
 *
 */
public interface UserBizInterface {
	/**查詢(xún)所有用戶信息*/
	public List<User> getUserList();
}
/**
 * 業(yè)務(wù)邏輯層實(shí)現(xiàn)類(lèi)
 * @author BC
 *
 */
public class UserBizImpl implements UserBizInterface {
	/**使用Spring注入*/
	private UserDaoInterface userDao;
	@Override
	 public List<User> getUserList() {
		return userDao.getUserList();
	}
	/**通過(guò)set方法注入,因此需要注入的屬性必須設(shè)置set方法*/
	public void setUserDao(UserDaoInterface userDao) {
		this.userDao = userDao;
	}
	public UserDaoInterface getUserDao() {
		return userDao;
	}
}

3、編寫(xiě)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"
 xmlns:p="http://www.springframework.org/schema/p"
 xsi:schemaLocation="http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

配置代碼:

 <!-- 數(shù)據(jù)訪問(wèn)層對(duì)象:UserDao -->
 <bean id="userDao" class="com.bc.dao.impl.UserDaoImpl"></bean>
 <!-- 業(yè)務(wù)邏輯層對(duì)象:UserBiz --> 
 <bean id="userBiz" class="com.bc.biz.impl.UserBizImpl">
  <!-- 通過(guò)set方法注入數(shù)據(jù)訪問(wèn)層屬性 -->
  <property name="userDao" ref="userDao"/>
 </bean>

測(cè)試代碼:

public class UserBizTest {
	private ApplicationContext ctx;
	@Before
	 public void load() {
		//讀取applicationContext.xml配置文件
		ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
	}
	@Test
	 public void getUserListTest() {
		//創(chuàng)建一個(gè)業(yè)務(wù)邏輯層對(duì)象
		UserBizInterface userDao = (UserBizInterface) ctx.getBean("userBiz");
		//調(diào)用方法獲取用戶信息
		List<User> userList = userDao.getUserList();
		//遍歷集合
		for (User user : userList) {
			System.out.println(user.getId() + "|" + user.getUserName() + "|" +user.getPassWord());
		}
	}
}

上面的實(shí)例代碼中,我們使用的是set方法注入,Spring的注入方式有許多種,注入的屬性類(lèi)型也有很多情況,詳細(xì)請(qǐng)參考:

淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類(lèi)型

關(guān)于bean的作用域

scope=”singleton” 默認(rèn),表示在Spring容器中僅存在一個(gè)共享的Bean實(shí)例
scope=”prototype” 每次從容器中都獲取一個(gè)新的實(shí)例
scope=”request” 每次Http請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的Bean實(shí)例
scope=”session” 同一個(gè)Http請(qǐng)求共享一個(gè)Bean實(shí)例
scope=”global session” 同一個(gè)全局Session共享一個(gè)Bean實(shí)例

總結(jié)

以上就是本文關(guān)于spring ioc的簡(jiǎn)單實(shí)例及bean的作用域?qū)傩越馕龅娜績(jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • SpringBoot之HandlerInterceptor攔截器的使用詳解

    SpringBoot之HandlerInterceptor攔截器的使用詳解

    這篇文章主要介紹了SpringBoot之HandlerInterceptor攔截器的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java導(dǎo)出txt文件的方法

    Java導(dǎo)出txt文件的方法

    這篇文章主要介紹了Java導(dǎo)出txt文件的方法,實(shí)例分析了兩種java導(dǎo)出txt文本文件的使用技巧,需要的朋友可以參考下
    2015-05-05
  • Spring中使用ehcache緩存的方法及原理詳解

    Spring中使用ehcache緩存的方法及原理詳解

    這篇文章主要介紹了Spring中使用ehcache緩存的方法及原理詳解,ehcache具有很強(qiáng)的靈活性,提供了LRU、LFU和FIFO緩存淘汰算法,Ehcache 1.2引入了最近最少使用、最久未使用和先進(jìn)先 出緩存淘汰算法, 構(gòu)成了完整的緩存淘汰算法,,需要的朋友可以參考下
    2024-01-01
  • Java把多個(gè)對(duì)象的list的數(shù)據(jù)合并的方法示例

    Java把多個(gè)對(duì)象的list的數(shù)據(jù)合并的方法示例

    在Java中合并多個(gè)List可以使用遍歷、Stream API或Apache Commons Collections,通過(guò)遍歷各個(gè)List并將元素添加到新List實(shí)現(xiàn)合并,Java 8提供了Stream API,使用Stream.of()和flatMap()可以簡(jiǎn)潔地合并List,文中給出了多種方法示例,需要的朋友可以參考下
    2024-09-09
  • java中final關(guān)鍵字使用示例詳解

    java中final關(guān)鍵字使用示例詳解

    Java中的final關(guān)鍵字非常重要,它可以應(yīng)用于類(lèi)、方法以及變量。這篇文章中帶你看看什么是final關(guān)鍵字?將變量,方法和類(lèi)聲明為final代表了什么?使用final的好處是什么?最后也有一些使用final關(guān)鍵字的實(shí)例
    2014-01-01
  • Spring Cloud Gateway 獲取請(qǐng)求體(Request Body)的多種方法

    Spring Cloud Gateway 獲取請(qǐng)求體(Request Body)的多種方法

    這篇文章主要介紹了Spring Cloud Gateway 獲取請(qǐng)求體(Request Body)的多種方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • 關(guān)于設(shè)置Mybatis打印調(diào)試sql的兩種方式

    關(guān)于設(shè)置Mybatis打印調(diào)試sql的兩種方式

    這篇文章主要介紹了關(guān)于設(shè)置Mybatis打印調(diào)試sql的兩種方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 基于Spring中各個(gè)jar包的作用及依賴(lài)(詳解)

    基于Spring中各個(gè)jar包的作用及依賴(lài)(詳解)

    下面小編就為大家?guī)?lái)一篇基于Spring中各個(gè)jar包的作用及依賴(lài)(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • SpringBoot快速整合通用Mapper的示例代碼

    SpringBoot快速整合通用Mapper的示例代碼

    后端業(yè)務(wù)開(kāi)發(fā),每個(gè)表都要用到單表的?增刪改查?等通用方法,而配置了通用Mapper可以極大的方便使用Mybatis單表的增刪改查操作,這篇文章主要介紹了SpringBoot快速整合通用Mapper,需要的朋友可以參考下
    2022-07-07
  • java繼承學(xué)習(xí)之super的用法解析

    java繼承學(xué)習(xí)之super的用法解析

    本文介紹java繼承super的用法,Java繼承是會(huì)用已存在的類(lèi)的定義作為基礎(chǔ)建立新類(lèi)的技術(shù)新類(lèi)的定義可以增加新的數(shù)據(jù)或者新的功能,也可以使用父類(lèi)的功能,但不能選擇性的繼承父類(lèi) 這種繼承使得復(fù)用以前的代碼非常容易,能夠大大的縮短開(kāi)發(fā)的周期,需要的朋友可以參考下
    2022-02-02

最新評(píng)論

汝阳县| 景东| 兰溪市| 咸宁市| 抚远县| 松阳县| 巨野县| 海淀区| 定远县| 阿拉善盟| 湖北省| 凤翔县| 扶绥县| 莫力| 平泉县| 阳东县| 凌源市| 澜沧| 含山县| 松桃| 陕西省| 广昌县| 嵩明县| 新沂市| 浪卡子县| 青州市| 沭阳县| 济源市| 皮山县| 安陆市| 常德市| 长岛县| 桂平市| 门源| 玛纳斯县| 湖北省| 仁布县| 舒兰市| 谷城县| 花垣县| 长汀县|