当前位置: 首页 > news >正文

Spring注入方式(1)

      Spring支持3种依赖注入方式,分别为属性注入、构造器注入和工厂方法注入(很少使用,不推荐),下面分别对属性注入和构造器注入详细讲解。

1、常量注入

  属性注入是通过setter方法注入Bean的属性值,属性注入使用<property>元素,使用name属性指定Bean的属性名称,使用value属性或者<value>子节点指定属性值。

beans.xml文件主要内容

<!--通过属性注入方式配置  -->
<bean id="person" class="com.spring.Person">
    <property name="name" value="Tom"></property>
    <property name="age" value="29"></property>
</bean>

Person.java

package com.spring;
public class Person {
	private String name;
	private int age;
	private double height;
	private double weight;
	
	public Person(String name, int age, double height, double weight) {
		super();
		this.name = name;
		this.age = age;
		this.height = height;
		this.weight = weight;
	}
	
	public Person() {
		super();
	}
	
	
	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		this.height = height;
	}

	public double getWeight() {
		return weight;
	}

	public void setWeight(double weight) {
		this.weight = weight;
	}

	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;
	}

	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", height=" + height + ", weight=" + weight + "]";
	}
	
	
	
	
}

 

Main.java

package com.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {
	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		Person person = (Person) ctx.getBean("person");
		System.out.println(person);
} }

运行结果截图如下:

以上就是属性注入的例子

2、构造器注入

2.1 按照索引匹配

beans.xml

 

<bean id="person1" class="com.spring.Person">
		<constructor-arg value="Tim" index="0"></constructor-arg>
		<constructor-arg value="30" index="1"></constructor-arg>
		<constructor-arg value="30" index="3"></constructor-arg>
		<constructor-arg value="65" index="2"></constructor-arg>
		
</bean>

 

结果:

2.2 按类型匹配

beans.xml

1 <bean id="person2" class="com.spring.Person">
2         <constructor-arg value="34" type="int"></constructor-arg>
3         <constructor-arg value="175" type="double"></constructor-arg>
4         <constructor-arg value="Jerry" type="java.lang.String" ></constructor-arg>
5         <constructor-arg value="70" type="double"></constructor-arg>
6     </bean>
View Code

结果:

 

转载于:https://www.cnblogs.com/Hxinguan/p/5935893.html

相关文章:

  • JSTL自定义标签
  • WIN10使用管理员权限运行VS2013
  • jq宽高 详解
  • 转载:第二弹!全球首个微信小程序(应用号)开发教程!通宵吐血赶稿!每日更新!...
  • 完全错排问题
  • sql相关记录
  • mysql 5.7.15 安装配置方法图文教程(转)
  • 2015年最新高清大內WEB前端开发视频教程
  • Linux(Debian)上安装Redis教程
  • 北大OJ 1001题
  • Android中软键盘弹出时底部菜单上移问题
  • to_date to_char
  • master-slave(主/从)模式
  • moogodb3.x总结
  • Maven中setting.xml 配置详解
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • Bytom交易说明(账户管理模式)
  • js 实现textarea输入字数提示
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Python语法速览与机器学习开发环境搭建
  • ReactNativeweexDeviceOne对比
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Twitter赢在开放,三年创造奇迹
  • 后端_ThinkPHP5
  • 码农张的Bug人生 - 见面之礼
  • 前端性能优化--懒加载和预加载
  • 手写双向链表LinkedList的几个常用功能
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 延迟脚本的方式
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • #Linux(make工具和makefile文件以及makefile语法)
  • (8)STL算法之替换
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (五)MySQL的备份及恢复
  • (新)网络工程师考点串讲与真题详解
  • (一)基于IDEA的JAVA基础10
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)OpenStack Hacker养成指南
  • .gitattributes 文件
  • .NET MVC第五章、模型绑定获取表单数据
  • .NET 设计模式初探
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • @requestBody写与不写的情况
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 云计算 | AWS ] AI 编程助手新势力 Amazon CodeWhisperer:优势功能及实用技巧
  • [2019.2.28]BZOJ4033 [HAOI2015]树上染色
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [ACM] hdu 1201 18岁生日
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [C/C++]数据结构 栈和队列()
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [Godot] 3D拾取