Spring-Bean的依赖注入的数据类型
Spring-Bean的依赖注入的数据类型
除了对象的引用可以注入,普通数据类型,集合等都可以在容器中进行注入
数据的三种数据类型
- 普通数据类型
- 引用数据类型
- 集合数据类型
普通数据类型
public class UserDaoImpl implements UserDao {
private String username;
private int age;public void setUsersname(String usersname) {
this.username = usersname;
}public void setAge(int age) {
this.age = age;
}
public void save() {
System.out.println(username);
System.out.println(age);
System.out.println("save running.....");
}
}
xml核心配置文件
<bean id="userDao" class="com.my.UserDaoImpl">
<property name="age" value="123"/>
<property name="usersname" value="zhangsan"/>
</bean>
<bean id="userService" class="com.my.service.UserImplService">
<!--这里的name是构造函数里面的参数userDao ref为容器中Bean的ID-->
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
测试
public class UserDemo {
@Test
public void mytest(){
ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userDao1 = (UserService) application.getBean("userService");
userDao1.save();
}
}
集合数据类型
private Properties properties;
set方法
public void setProperties(Properties properties) {
this.properties = properties;
}
xml配置文件
<bean id="userDao" class="com.my.UserDaoImpl">
<property name="properties">
<props>
<prop key="p1">pppp2</prop>
<prop key="p2">pppp3</prop>
<prop key="p3">pppp4</prop>
</props>
</property>
</bean>
引用数据类型之map
声明变量
private Map<String, User> userMap;
Map里面的set方法
package com.my.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;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", addr='" + addr + '\'' +
'}';
}
}
MapXML配置文件(重点)
<bean id="userDao" class="com.my.UserDaoImpl">
<property name="userMap">
<map>
<!--第一个key为map的key-->
<entry key="u1" value-ref="user1"/>
<entry key="u2" value-ref="user2"/>
</map>
</property>
</bean>
<bean id="user1" class="com.my.domain.User">
<property name="name" value="qwertyu"/>
<property name="addr" value="beijing"/>
</bean>
<bean id="user2" class="com.my.domain.User">
<property name="name" value="qwj"/>
<property name="addr" value="luvy"/>
</bean>
测试
public class UserDemo {
@Test
public void mytest(){
ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userDao1 = (UserService) application.getBean("userService");
userDao1.save();
}
}
{{uploading-image-82062.png(uploading...)}}
Spring-Bean的依赖注入的数据类型的更多相关文章
- 给力啊!这篇Spring Bean的依赖注入方式笔记总结真的到位,没见过写的这么细的
1. Bean的依赖注入概念 依赖注入(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现.在编写程序时,通过控制反转,把对象的创建交给了 Spring,但是 ...
- spring几种依赖注入方式以及ref-local/bean,factory-bean,factory-method区别联系
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework的依赖注入和控制反转
Dependency Injection and Inversion of Control 1.概述: 1.1相关概念 bean:由IoC容器所管理的对象,也即各个类实例化所得对象都叫做bean 控制 ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(一)——Spring中的依赖注入简介【转】
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- spring六种种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- spring 四种依赖注入方式以及注解注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- JavaEE开发之Spring中的依赖注入与AOP
上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...
- Srping - bean的依赖注入(Dependency injection)
目录 1 概述 2 两种基本的依赖注入方式 2.1 构造函数方式 2.2Setter方式 3 其他依赖注入功能 3.1 <ref/>标签引用不同范围的bean 3.2 内部bean 3.3 ...
- JavaEE开发之Spring中的依赖注入与AOP编程
上篇博客我们系统的聊了<JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建>,并在之前的博客中我们聊了依赖注入的相关东西,并且使用Objective-C的R ...
随机推荐
- Awesome GPT 来了!
大家好!我是韩老师. GPT, ChatGPT, OpenAI, LLM(大语言模型)等等技术的出现与应用,改变了许多的行业和人. 长期来看,类 GPT 的技术会对整个世界有着持续的改变. 我们几乎每 ...
- golang版本sdl2显示窗体
golang版本sdl2显示窗体 go用syscall调用sdl2,在win10 x64上没问题,其他系统不敢保证. 见地址 package main import ( "fmt" ...
- 2021-01-09:linux中,某一个实时日志通过什么命令查?
福哥答案2020-01-09:[答案来自此链接:](https://www.zhihu.com/question/438536200)1.tailtail -f首先就是 tail -f,tail 命令 ...
- 2022-04-08:在一张 无向 图上,节点编号0~N-1。老鼠开始在1节点,猫在2节点,0号节点是洞,老鼠想进洞, 老鼠第先出发,猫后出发,轮流行动。 在每个玩家的行动中,他们 必须 沿着图中与所
2022-04-08:在一张 无向 图上,节点编号0~N-1.老鼠开始在1节点,猫在2节点,0号节点是洞,老鼠想进洞, 老鼠第先出发,猫后出发,轮流行动. 在每个玩家的行动中,他们 必须 沿着图中与所 ...
- vue全家桶进阶之路10:修饰符
Vue2 中的修饰符是指在指令后面添加点号(.)和修饰符名称的方式,用于控制指令的行为.修饰符可以分为事件修饰符和属性修饰符两种类型,下面分别介绍它们的作用和使用方法. 事件修饰符 事件修饰符用于控制 ...
- Java 世界的法外狂徒:反射
概述 反射(Reflection)机制是指在运行时动态地获取类的信息以及操作类的成员(字段.方法.构造函数等)的能力.通过反射,我们可以在编译时期未知具体类型的情况下,通过运行时的动态查找和调用. 虽 ...
- 由C# yield return引发的思考
前言 当我们编写 C# 代码时,经常需要处理大量的数据集合.在传统的方式中,我们往往需要先将整个数据集合加载到内存中,然后再进行操作.但是如果数据集合非常大,这种方式就会导致内存占用过高,甚至可能导致 ...
- go 实现ringbuffer以及ringbuffer使用场景介绍
ringbuffer因为它能复用缓冲空间,通常用于网络通信连接的读写,虽然市面上已经有了go写的诸多版本的ringbuffer组件,虽然诸多版本,实现ringbuffer的核心逻辑却是不变的.但发现其 ...
- WinUI(WASDK)使用HelixToolkit加载3D模型并进行项目实践
前言 本人之前开发了一个叫电子脑壳的上位机应用,给稚晖君ElectronBot开源机器人提供一些功能,但是由于是结合硬件才能使用的软件,如果拥有硬件的人员太少,就会导致我的软件没什么人用,于是我就想着 ...
- Dapr在Java中的实践 之 状态管理
状态管理 状态管理(State Management)使用键值对作为存储机制,可以轻松的使长时运行.高可用的有状态服务和无状态服务共同运行在我们的服务中. 我们的服务可以利用Dapr的状态管理API在 ...