Spring-Bean依赖注入(引用数据类型和集合数据类型)
为什么使用spring依赖注入详见–》依赖注入分析
1.创建实体类User类
package com.hao.domain;public class User {private String name;private String addr;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {return "User{" +"name='" + name + '\'' +", addr='" + addr + '\'' +'}';}
}
2.UserDao接口及其实现类UserDaoImpl(接口代码省略)
public class UserDaoImpl implements UserDao {private List<String> strList; //集合private Map<String, User> userMap;//集和,集合中也包括User引用private Properties properties;//使用set方法注入public void setStrList(List<String> strList) {this.strList = strList;}public void setUserMap(Map<String, User> userMap) {this.userMap = userMap;}public void setProperties(Properties properties) {this.properties = properties;}@Overridepublic void save1() {System.out.println(strList);System.out.println(userMap);System.out.println(properties);}
}
3.UserService接口以及UserServiceImpl实现类(省略接口代码)
public class UserServiceImpl implements UserService {private UserDao userDao;public UserServiceImpl() {}public UserServiceImpl(UserDao userDao) {this.userDao = userDao;}@Overridepublic void sava() {userDao.save1();}
}
3.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="userDao" class="com.hao.dao.impl.UserDaoImpl"><property name="strList"><list><value>aaa</value><value>bbb</value><value>ccc</value></list></property><property name="userMap"><map><entry key="user1" value-ref="user1"></entry><entry key="user2" value-ref="user2"></entry></map></property><property name="properties"><props><prop key="p1">ppp1</prop><prop key="p2">ppp2</prop><prop key="p3">ppp3</prop></props></property></bean>//因为map集合里面包括User引用,而User类中还有其他属性,所以需要进行注入,然后通过id被上面配置的value-ref引入<bean id="user1" class="com.hao.domain.User"><property name="name" value="tom"/><property name="addr" value="beijing"/></bean><bean id="user2" class="com.hao.domain.User"><property name="name" value="jin"/><property name="addr" value="tianjing"/></bean><bean id="userService" class="com.hao.service.impl.UserServiceImpl"><constructor-arg name="userDao" ref="userDao"></constructor-arg></bean>
</beans>
5.测试类
public class UserController {public static void main(String[] args) {ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");UserService service = (UserService) context.getBean("userService");service.sava();}
}
结果当然显而易见了
Spring-Bean依赖注入(引用数据类型和集合数据类型)相关推荐
- Spring bean依赖注入、bean的装配及相关注解
依赖注入 Spring主要提供以下两种方法用于依赖注入 基于属性Setter方法注入 基于构造方法注入 Setter方法注入 例子: public class Communication {priva ...
- Spring Bean 依赖注入
动注入 手动注入就是在XML中定义Bean时,给Bean的某个属性指定了值. set方法注入 <bean name="orderService" class="co ...
- Bean依赖注入的3种数据类型
Bean依赖注入有3种类型,分别是普通数据类型.集合和引用数据类型. 在这里我主要用的set依赖注入方法 1.普通数据类型 public class Book{private String bid;p ...
- 零配置 之 Spring 注解实现Bean依赖注入
转载自 [第十二章]零配置 之 12.2 注解实现Bean依赖注入 --跟我学spring3 12.2 注解实现Bean依赖注入 12.2.1 概述 注解实现Bean配置主要用来进行如依赖注入. ...
- spring bean依赖_Spring @Configuration并将bean依赖项作为方法参数注入
spring bean依赖 一个春天建议注射豆从Spring的参考指南复制下面的示例中显示之间的相互依存关系的方式在这里 : @Configuration public class AppConfig ...
- Spring框架----Spring的依赖注入
1.spring的依赖注入的概念 依赖注入:dependency Injection IOC的作用:降低程序之间的依赖关系,但不是消除. 依赖关系的管理:以后都交给了spring来维护 在当前类中需要 ...
- Spring学习第4篇:Spring 的依赖注入
大家家好,我是一名网络怪咖,北漂五年.相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知Spring重要性,现在普遍都使用SpringBoot来开发,面试的时候SpringBoot原理也 ...
- 05.bean依赖注入的三种方式
05.bean依赖注入的三种方式 1.概述 依赖注入 DI(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现. 在编写程序时,通过控制反转,把对象的创建交给 ...
- 据说,80%的人没有真正理解了Spring的依赖注入
前言 提起Spring,大家肯定不陌生,它是每一个Java开发者绕不过去的坎.Spring 框架为基于 java 的企业应用程序提供了一整套解决方案,方便开发人员在框架基础快速进行业务开发. 在官网中 ...
- spring(一)依赖注入与 SPEL
Spring之依赖注入与 SPEL 一.控制反转与依赖注入 二.helloworld 三.构造注入 四.级联注入 五.单例与多例 六.工厂方法创建 Bean 七.包扫描管理 bean 八.SPEL与资 ...
最新文章
- 一分钟了解阿里云产品:高性能计算HPC
- python 苹果李子橙_Python模块知识6:OS、SYS模块
- hdu 5730 Shell Necklace——多项式求逆+拆系数FFT
- shell脚本中的条件测试
- python中的ideavim有什么作用_Pycharm和Idea支持的vim插件的方法
- 2440,6410,210存储器接口比较
- SP1043 GSS1 - Can you answer these queries I 猫树
- r语言查找是否存在空值_关于R包安装你知道多少?
- Unity3D之NGUI基础6.1:按钮交互
- 2012年参加油田象棋比赛的几盘棋
- 在C/C++中使用输入输出流
- Excel VBA 函数返回值
- 1.16 隐藏不需要打印的内容 [原创Excel教程]
- JAVA之猜数字游戏
- 线程(一)伤害不大,侮辱性极强——idm与多人运动
- linux crontab在线生成,linux下crontab在线配置解析 互联网技术圈 互联网技术圈
- vivado配置EMIO(使用vivado配置XDC文件)
- 复制带随机指针的链表<难度系数⭐⭐>
- dr/bdr选举的故事(有意思)
- Python学习:安装pycharm教程(Python、pycharm安装包,永久免费使用)
热门文章
- 【ARM】ARM体系结构-GPIO
- 【Demo 0116】堆的使用
- C#委托、事件、消息(入门级)
- 实验室装水的容器叫什么_@实验员丨实验室超纯水机正确取水,你做到了吗?...
- mysql 数据库事务处理_MySQL数据库事务及其原理
- bmp转换tiff c++代码_Creative Convert for Mac(文件格式转换工具)
- Rk3288运行linux,查看“Firefly-rk3288 build linux”的源代码
- VSC为_计及功率控制模式的VSC-MTDC交直流并列运行系统概率潮流计算
- Android 使用Listview的优化
- 【机器学习算法专题(蓄力计划)】一、机器学习简史和常用算法的梳理