spring属性注入的set方法注入
1、值注入
创建我们要使用的User类:
package cn.it.bean;public class User {private String name;@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + "]";}private int age;
// private Car car;
//
// public Car getCar() {
// return car;
// }
//
// public void setCar(Car car) {
// this.car = car;
// }public User() {System.out.println("无参构造方法");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}
在配置文件里配置:
<bean name="user" class="cn.it.bean.User"><property name="name" value="tom"></property><property name="age" value="18"></property></bean>
写一个测试类:
package cn.it.injection;import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.it.bean.User;public class Demo {@Testpublic void fun() {ApplicationContext ac = new ClassPathXmlApplicationContext("cn/it/injection/applicationContext.xml");User user = (User) ac.getBean("user");System.out.println(user);}
}
运行结果:
2、引用类型注入;
在编写一个新的Car类:
package cn.it.bean;public class Car {private String name;private String color;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}@Overridepublic String toString() {return "Car [name=" + name + ", color=" + color + "]";}}
将User类改成如下代码:
package cn.it.bean;public class User {private String name;private int age;private Car car;public Car getCar() {return car;}public void setCar(Car car) {this.car = car;}public User() {System.out.println("无参构造方法");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + ", car=" + car + "]";}}
在配置文件里配置如下:
<bean name="user" class="cn.it.bean.User"><property name="name" value="tom"></property><property name="age" value="18"></property><property name="car" ref="car"></property></bean><bean name="car" class="cn.it.bean.Car"><property name="name" value="宝马"></property><property name="color" value="红色"></property></bean>
上面的测试类不用改变,直接运行,结果如下:
spring属性注入的set方法注入相关推荐
- spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入
spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...
- 依赖注入,setter方法注入
Spring框架的依赖注入通常有两种实现方式,一种是使用构造方法注入,另一种是使用属性的setter方法注入,这里是setter方法注入: 目录结构: 1. 创建com.DI 包,并在包中创建Tes ...
- Spring官网阅读(二)(依赖注入及方法注入)
上篇文章我们学习了官网中的1.2,1.3两小节,主要是涉及了容器,以及Spring实例化对象的一些知识.这篇文章我们继续学习Spring官网,主要是针对1.4小节,主要涉及到Spring的依赖注入.虽 ...
- Spring属性注入DI
1.构造方法注入(只需提供一个构造方法) javabean 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package com.mickeymouse.ioc; ...
- spring属性注入
注入方式 set方法注入 构造函数注入 p名称空间注入 spel注入(#表示理解为引用) 练习代码: <!-- 第二天 set注入 index:索引 ref:引用对象 type:参数类型--&g ...
- Spring IoC是如何进行依赖注入的
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 依赖注入(DI) DI(Dependency Injection) ...
- Spring第8篇:自动注入(autowire)详解
本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...
- spring循环依赖及解决方法
一.三种循环依赖的情况 ①构造器的循环依赖:这种依赖spring是处理不了的,直接抛出BeanCurrentlylnCreationException异常. ②单例模式下的setter循环依赖:通过& ...
- SpringIOC手动装配(注入):构造器注入,静态工厂注入,实例化工厂注入
1.本篇博客的背景和目的 目前我本人正在学习SpringFramework的知识,这也是这个专栏的主题.我前面的几篇博文中,简单的认识了一下SpringFramework,记录了SpringFrame ...
最新文章
- Apache服务器下使用 ab 命令进行压力测试
- Android拍照得到全尺寸图片并进行压缩/拍照或者图库选择 压缩后 图片 上传
- 再回首Java第十一天
- apache个人主页搭建
- 实验二:Linux下Xen环境的安装
- Execute SQL Task 参数和变量的映射
- [傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论
- 账户Account类文件编写(static成员使用)
- 计算机应用基础抢答题,计算机应用基础问答题
- 韦氏评级:担心比特币近期价格走势的人都过于关注短期
- 2018.12.17-dtoj-1170-最长公共子串
- 过剩通勤应用——线性规划问题解决开源工具(下篇)
- Android应用及应用管理
- Delphi - 注入的方式来禁止任务管理器
- linux 键盘 键值0x1e,Linux文本处理三剑客之awk学习笔记11:选项、内置变量和内置函数...
- 【渝粤教育】国家开放大学2019年春季 0390-22T古代诗歌散文专题 参考试题
- Spark深入浅出企业级最佳实践
- 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
- Simulink —— Manual Switch的使用
- 【题解】P3387 【模板】缩点
热门文章
- Redis---概述
- mongoose中的populate之多级填充,嵌套字段填充?
- Win10 OpenCV3.3.0+VS2013配置大坑,OpenCV解决方案编译报错“找不到python36_d.lib”错误...
- 关于常用的编码工具如何引入jar包
- 20172314 2018-2019-1《程序设计与数据结构》第一周学习总结
- linux线程基础篇----线程同步与互斥
- Redis配置文件配置
- linux find prune排除某目录或文件
- linux技巧----查找某个正在执行的脚本
- java hashtable put_Java Hashtable put()方法与示例