日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

尚学堂Spring视频教程(二):Spring控制反转

發布時間:2025/3/14 javascript 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 尚学堂Spring视频教程(二):Spring控制反转 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用Spring來實現IOC

? 在上節中我們自定義了一個接口BeanFactory和類ClassPathXmlApplicationContext來模擬Spring,其實它們在Spring中確實是存在的,下面我們具體來看看Spring的控制反轉是如何操作的

? 其他代碼一樣,只是配置文件和單元測試的代碼有點不同,注意引用其他bean配置的是"ref"屬性

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl"></bean> <bean id="userService" class="com.bjsxt.service.UserService"><property name="userDAO" ref="u" /></bean></beans> 配置文件 package com.bjsxt.service; import org.junit.Test;import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.core.io.ClassPathResource;import com.bjsxt.model.User;//Dependency Injection //Inverse of Control public class UserServiceTest {@Testpublic void testAdd() throws Exception { BeanFactory ctx = new ClassPathXmlApplicationContext("beans.xml");UserService service = (UserService)ctx.getBean("userService");User u = new User();u.setUsername("zhangsan");u.setPassword("zhangsan");service.add(u);}} 測試代碼

? 注:ClassPathXmlApplicationContext繼承ApplicationContext,ApplicationContext又繼承BeanFactory,所以也可以這樣寫ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");推薦使用這種寫法。其構造函數也可以傳入String數組,適用于多個配置文件的情況

?

三種注入方式(setter,構造函數,接口)

? setter已經見過了,接口注入很少用,故此忽略,下面來看一下構造函數注入,在UserService中添加一個構造函數初始化UserDAO屬性

package com.bjsxt.service; import com.bjsxt.dao.UserDAO; import com.bjsxt.model.User;public class UserService {private UserDAO userDAO; public void add(User user) {userDAO.save(user);}public UserDAO getUserDAO() {return userDAO;}public void setUserDAO(UserDAO userDAO) {this.userDAO = userDAO;}public UserService(UserDAO userDAO) {super();this.userDAO = userDAO;} } 添加構造函數的UserService <?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/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd"><bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl"></bean><bean id="userService" class="com.bjsxt.service.UserService"><!-- <property name="userDAO" ref="u" />--><constructor-arg><ref bean="u"/></constructor-arg></bean></beans> 配置文件

? 注意用的是constructor-arg標簽,如果構造函數有多個參數,就按照順序寫,或者指定index

?

Bean的Scope屬性

? 配置文件中bean有個scope屬性,如果配置為singleton,表示該bean只有一個實例,如果配置為prototype,每次取出該bean都會創建一個新的對象。bean的scope屬性配置為singleton和prototype,在下面的代碼中會分別輸出true和false

package com.bjsxt.service; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjsxt.model.User;//Dependency Injection //Inverse of Control public class UserServiceTest {@Testpublic void testAdd() throws Exception {ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");UserService service = (UserService)ctx.getBean("userService");UserService service2 = (UserService)ctx.getBean("userService");System.out.println(service == service2);User u = new User();u.setUsername("zhangsan");u.setPassword("zhangsan");service.add(u);}} UserService測試scope屬性

轉載于:https://www.cnblogs.com/SamFlynn/p/4597718.html

總結

以上是生活随笔為你收集整理的尚学堂Spring视频教程(二):Spring控制反转的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日日碰狠狠添天天爽无码 | 国产精品久久久久久亚洲调教 | 美女在线不卡 | a毛片大片 | 在线看片| 久久国产日韩 | 少妇又色又爽又高潮极品 | 黄色的毛片 | 久久国产二区 | 天堂av中文字幕 | 91精品免费在线观看 | 一区二区三区国 | 黄色av日韩 | 成人做爰黄| 成人免费精品 | 无码丰满熟妇 | 二区三区在线视频 | 亚洲国产精品久久久久婷婷老年 | 中国毛片在线 | 亚洲一区精品在线观看 | 欧美午夜一区二区 | 521a人成v香蕉网站 | 我的邻居在线观看 | 亚洲国产精品久久久久婷婷老年 | 91大神精品| 成人欧美一级特黄 | 九九久久综合 | 有奶水的迷人少妇 | 国产成人在线观看免费 | 新版红楼梦在线高清免费观看 | 国产精品一级黄片 | 日韩av男人天堂 | 在线观看免费看片 | 日韩人妻无码精品久久久不卡 | 在线视频这里只有精品 | 韩国久久久久久 | 天天干天天色综合 | 夜夜骑av| 美女又爽又黄视频毛茸茸 | 蜜桃av网站 | 性欧美4khd高清极品 | 欧美精品videosex极品 | 天美麻花果冻视频大全英文版 | 日日噜噜夜夜狠狠久久丁香五月 | 丰满熟女一区二区三区 | 色狠av| 三浦惠理子aⅴ一二三区 | 波多野结衣毛片 | 国产国产乱老熟女视频网站97 | 台湾150部性三级 | 中文字幕码精品视频网站 | 日韩人体视频 | 欧美精品videos| 非洲一级片 | 一级黄色免费看 | 黄色网页入口 | 国产精品熟女一区二区不卡 | 在线观看污网站 | 欧美丰满美乳xxx高潮www | 狠狠干网站 | 久久精品夜| 国产精品久久久久久久免费 | 人乳videos巨大吃奶 | 免费黄色国产 | 精品国产aⅴ麻豆 | 香蕉视频免费 | 青青草视频成人 | 一区二区三区视频免费在线观看 | 六月婷婷中文字幕 | 国产全是老熟女太爽了 | 欧美91精品 | 国内自拍小视频 | 色综合综合色 | 国产v亚洲v天堂无码久久久 | 另类第一页 | 国产网站视频 | 国产日韩欧美在线观看 | 国产精品亚洲专区无码牛牛 | 国产成人精品一区在线播放 | 男人插女人免费视频 | 日日躁夜夜躁白天躁晚上躁91 | 狂躁美女大bbbbbb黑人 | www.黄色大片| 欧美男女视频 | 亚洲激情短视频 | 亚洲乱仑| a视频免费观看 | 老司机在线精品视频 | 美女av在线免费观看 | 999久久久免费精品国产 | 99热.com| 日韩欧美一二三四区 | 91丝袜一区二区三区 | 97国产精品久久久 | 黄色无毒网站 | 已满十八岁免费观看 | 色窝网| 亚洲va韩国va欧美va精品 | 成人深夜视频在线观看 |