005_Spring的属性注入
1. DI依赖注入, 前提必须有IOC的环境, Spring管理这个类的时候将类的依赖的属性注入(设置)进来。
2. Spring的属性注入
2.1. 构造方法的方式的属性注入
2.2. Set方法的方式的属性注入
2.3. 集合类型属性注入
3. 依赖注入实例
3.1. 新建一个名为SpringDI的Java工程, 拷入Spring相关包
3.2. 创建Student.java
package com.lywgames.bean;public class Student {private int id;private String name;public Student(int id, String name) {this.id = id;this.name = name;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + "]";}}
3.3. 创建Teacher.java
package com.lywgames.bean;public class Teacher {private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return "Teacher [id=" + id + ", name=" + name + "]";}}
3.4. 创建Clazz.java
package com.lywgames.bean;import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;public class Clazz {private Teacher teacher;private String[] clazzName;private List<Student> studentList;private Set<Student> studentSet;private Map<Integer, Student> studentMap;public Teacher getTeacher() {return teacher;}public void setTeacher(Teacher teacher) {this.teacher = teacher;}public String[] getClazzName() {return clazzName;}public void setClazzName(String[] clazzName) {this.clazzName = clazzName;}public List<Student> getStudentList() {return studentList;}public void setStudentList(List<Student> studentList) {this.studentList = studentList;}public Set<Student> getStudentSet() {return studentSet;}public void setStudentSet(Set<Student> studentSet) {this.studentSet = studentSet;}public Map<Integer, Student> getStudentMap() {return studentMap;}public void setStudentMap(Map<Integer, Student> studentMap) {this.studentMap = studentMap;}@Overridepublic String toString() {return "Clazz [teacher=" + teacher + ", clazzName=" + Arrays.toString(clazzName) + ", studentList=" + studentList + ", studentSet=" + studentSet+ ", studentMap=" + studentMap + "]";}}
3.5. 创建Test.java
package com.lywgames;import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.lywgames.bean.Clazz;
import com.lywgames.bean.Student;
import com.lywgames.bean.Teacher;public class Test {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");System.out.println(context.getBean(Student.class).toString());System.out.println(context.getBean(Teacher.class).toString());System.out.println(context.getBean(Clazz.class).toString());context.close();}
}
3.6. 在src目录下创建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/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 构造函数注入 --><bean id="student" class="com.lywgames.bean.Student"> <constructor-arg name="id" value="101"></constructor-arg><constructor-arg name="name" value="zhangsan"></constructor-arg></bean> <!-- set方法注入 --><bean id="teacher" class="com.lywgames.bean.Teacher"> <property name="id" value="901"></property><property name="name" value="xiaocui"></property></bean> <!-- 注入数组, list, set, map --><bean id="clazz" class="com.lywgames.bean.Clazz"> <property name="teacher" ref="teacher"></property><!-- 注入数组--><property name="clazzName"><list><value>计算机1班</value><value>三好班级</value></list></property><!-- 注入 list集合 --><property name="studentList"><list><ref bean="student"/><ref bean="student"/></list></property><!-- 注入set集合 --><property name="studentSet"><set><ref bean="student"/><ref bean="student"/></set></property><!-- 注入map集合 --><property name="studentMap"><map><entry key="801" value-ref="student"></entry><entry key="802" value-ref="student"></entry></map></property></bean>
</beans>
3.7. 运行项目
005_Spring的属性注入相关推荐
- Spring学习笔记(二)——Spring相关配置属性注入Junit整合
一.Spring的相关配置 1.1 Bean元素 class属性:被管理对象的完整类名 name属性:给Bean起个名字,能重复,能使用特殊字符.后来属性 id属性:给Bean起个名字,不能重复,不能 ...
- Spring Boot系列四 Spring @Value 属性注入使用总结一
@Value注入 不通过配置文件的注入属性的情况 通过@Value将外部的值动态注入到Bean中,使用的情况有: 注入普通字符串 注入操作系统属性 注入表达式结果 注入其他Bean属性:注入beanI ...
- 2.3.3 spring属性注入-注解注入-全注解-配置类扫描
代码: spring2-属性注入-全注解-配置类扫描.zip - 蓝奏云文件大小:12.3 K|https://www.lanzouw.com/iPK5vvq21uf 这个博客,我们使用全注解的方式来 ...
- 2.3.2 spring属性注入-注解注入-半注解注入-后序
代码: spring属性注入-注解注入-半注解后序.zip - 蓝奏云文件大小:15.2 K|https://www.lanzouw.com/iCjbVvpvxaf 上一个博客的半注解是,一个类在xm ...
- 2.3.1 spring属性注入-注解注入-半注解方式-前序
注解注入自由度高,可以对部分类使用注解,也可以对所有类都使用注解. 下面代码是的Category使用xml定义java Bean, Product使用注解来定义java Bean 1.定义Catogo ...
- 2.2 Spring属性注入-构造方法
代码: spring2.2-构造方法注入.zip - 蓝奏云文件大小:14.9 K|https://www.lanzouw.com/iLbBBvpug4b 1.定义Category和Product类, ...
- 2.1、spring属性注入-Set方法注入
代码地址:spring2.1.zip - 蓝奏云文件大小:15.1 K|https://www.lanzouw.com/imlEwvptwre Set方法注入的原理是spring先通过指定id的类的无 ...
- druiddatasource配置_Springboot属性注入 Java配置和Value配置
今天我们正式进入了SpringBoot入门实战系列的课程,第二个部分SpringBoot配置和日志管理,本期课程将会分享:1.springboot属性注入 - @Value(推荐);2.Springb ...
- Spring(三)——HelloSpring、IOC创建对象的方式、属性注入、自动装配、使用注解开发
文章目录 1. 简介 2. IOC理论推导 3. HelloSpring 4. IOC创建对象的方式 4.1 使用无参构造创建对象(默认) 4.2 使用有参构造创建对象 5. Spring配置 5.1 ...
最新文章
- html5 填充下拉框,Html5添加实现Bootstrap下拉列表框鼠标滑过时打开的插件教程
- oracle 的启动与连接
- python3安装mysql模块_Python3.6 下 安装MySql
- px4原生源码学习一
- ShaderLab学习小结(一)最简化的顶点片断Shader
- android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑.......
- cte公用表表达式_SQL Server公用表表达式(CTE)
- 字符串存入xls matlab,数组 – MATLAB:将字符串写入Excel
- SecureCRT 6.7.0.153 汉化绿色版
- 台达伺服控制器接线图_【智】两种PLC台达B2伺服驱动器接线和参数设置详解
- laydate 在vue中使用_如何在vue-cli项目里用layer的layData日期组件(代码)
- 大气压力换算公式_大气压怎么算
- 基于单片机的心率监测系统设计(#0495)
- 亿级流量网站架构核心技术 跟开涛学搭建高可用高并发系统
- Ebean报错java.lang.ClassCastException: com.project.model.xxx cannot be cast to com.project.model.xxx
- Vue packages version mismatch解决方案
- 学计算机选择什么编程语言好一些?
- rk3399 hdmi HDCP key烧录
- 洛谷P4099 [HEOI2013]SAO 题解
- 腾讯地图 省市区县 信息展示
热门文章
- jvm系列(十):如何优化Java GC「译」
- OS X快捷键小技巧
- iOS 选择的照片或者拍照的图片上添加日期水印
- 思科cisco解决方案:思科ACI解决方案和Nexus_9000交换机
- [LeetCode] Single Number 单独的数字
- 走向.NET架构设计—第三章—分层设计,初涉架构
- phpcms v9二次开发及使用中各种问题解决方案(一)
- dedecms调用自定义会员模型会员信息的方法
- IPv6的利与弊—Vecloud微云
- windows下编译jsoncpp 1.y.z