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方法注入相关推荐

  1. spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入

    spring中的依赖注入 依赖注入: Dependency Injection IOC的作用:降低程序间的耦合(依赖关系) 依赖关系的管理:以后都交给spring来维护.在当前类需要用到其他类的对象, ...

  2. 依赖注入,setter方法注入

    Spring框架的依赖注入通常有两种实现方式,一种是使用构造方法注入,另一种是使用属性的setter方法注入,这里是setter方法注入: 目录结构: 1.  创建com.DI 包,并在包中创建Tes ...

  3. Spring官网阅读(二)(依赖注入及方法注入)

    上篇文章我们学习了官网中的1.2,1.3两小节,主要是涉及了容器,以及Spring实例化对象的一些知识.这篇文章我们继续学习Spring官网,主要是针对1.4小节,主要涉及到Spring的依赖注入.虽 ...

  4. 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; ...

  5. spring属性注入

    注入方式 set方法注入 构造函数注入 p名称空间注入 spel注入(#表示理解为引用) 练习代码: <!-- 第二天 set注入 index:索引 ref:引用对象 type:参数类型--&g ...

  6. Spring IoC是如何进行依赖注入的

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 依赖注入(DI) DI(Dependency Injection) ...

  7. Spring第8篇:自动注入(autowire)详解

    本文内容 手动注入的不足 Class.isAssignableFrom方法介绍 3种自动注入方式详解及案例 按名称自动注入 按类型自动注入 按构造器进行自动注入 按类型自动注入某种类型的所有bean给 ...

  8. spring循环依赖及解决方法

    一.三种循环依赖的情况 ①构造器的循环依赖:这种依赖spring是处理不了的,直接抛出BeanCurrentlylnCreationException异常. ②单例模式下的setter循环依赖:通过& ...

  9. SpringIOC手动装配(注入):构造器注入,静态工厂注入,实例化工厂注入

    1.本篇博客的背景和目的 目前我本人正在学习SpringFramework的知识,这也是这个专栏的主题.我前面的几篇博文中,简单的认识了一下SpringFramework,记录了SpringFrame ...

最新文章

  1. Apache服务器下使用 ab 命令进行压力测试
  2. Android拍照得到全尺寸图片并进行压缩/拍照或者图库选择 压缩后 图片 上传
  3. 再回首Java第十一天
  4. apache个人主页搭建
  5. 实验二:Linux下Xen环境的安装
  6. Execute SQL Task 参数和变量的映射
  7. [傅里叶变换及其应用学习笔记] 九. 继续卷积的讨论
  8. 账户Account类文件编写(static成员使用)
  9. 计算机应用基础抢答题,计算机应用基础问答题
  10. 韦氏评级:担心比特币近期价格走势的人都过于关注短期
  11. 2018.12.17-dtoj-1170-最长公共子串
  12. 过剩通勤应用——线性规划问题解决开源工具(下篇)
  13. Android应用及应用管理
  14. Delphi - 注入的方式来禁止任务管理器
  15. linux 键盘 键值0x1e,Linux文本处理三剑客之awk学习笔记11:选项、内置变量和内置函数...
  16. 【渝粤教育】国家开放大学2019年春季 0390-22T古代诗歌散文专题 参考试题
  17. Spark深入浅出企业级最佳实践
  18. 【20保研】四川大学计算机学院(软件学院)2019年全国优秀大学生暑期夏令营招生简章...
  19. Simulink —— Manual Switch的使用
  20. 【题解】P3387 【模板】缩点

热门文章

  1. Redis---概述
  2. mongoose中的populate之多级填充,嵌套字段填充?
  3. Win10 OpenCV3.3.0+VS2013配置大坑,OpenCV解决方案编译报错“找不到python36_d.lib”错误...
  4. 关于常用的编码工具如何引入jar包
  5. 20172314 2018-2019-1《程序设计与数据结构》第一周学习总结
  6. linux线程基础篇----线程同步与互斥
  7. Redis配置文件配置
  8. linux find prune排除某目录或文件
  9. linux技巧----查找某个正在执行的脚本
  10. java hashtable put_Java Hashtable put()方法与示例