Spring5.X常见的注入方式
使用set方法注入
Video.java
package net.cybclass.sp.domain;
public class Video {
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
System.out.println("Video setTitle被调用");
this.title = title;
}
}
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="video" class="net.cybclass.sp.domain.Video">
<property name="id" value="9"></property>
<property name="title" value="Spring5.X课程"></property> </bean>
</beans>
app.java
package net.cybclass.sp; import net.cybclass.sp.domain.Video;
import net.cybclass.sp.domain.VideoOrder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class app {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Video video=(Video) applicationContext.getBean("video");
System.out.println(video);
}
}
验证

使用带参的构造函数注入
Video.java
package net.cybclass.sp.domain;
public class Video {
public Video(int id, String title) {
System.out.println("Video 构造函数被调用");
this.id = id;
this.title = title;
}
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
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="video" class="net.cybclass.sp.domain.Video">
<constructor-arg name="id" value="8"></constructor-arg>
<constructor-arg name="title" value="Spring5.X课程"></constructor-arg>
</bean>
</beans>
app.java
package net.cybclass.sp; import net.cybclass.sp.domain.Video;
import net.cybclass.sp.domain.VideoOrder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class app {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Video video=(Video) applicationContext.getBean("video");
System.out.println(video);
}
}
验证

POJO类型注入(property没有使用value属性,而是使用了ref属性)
<bean id="video" class="net.cybclass.sp.domain.Video">
<!--list 类型注入-->
<property name="chapterList">
<list>
<value>第一章SpringBoot</value>
<value>第二章Mybatis</value>
<value>第三章Spring</value>
</list>
</property>
<!--注入map-->
<property name="videoMap">
<map>
<entry key="1" value="SpringCloud课程层"></entry>
<entry key="2" value="面试宝典"></entry>
<entry key="3" value="JavaWeb课程"></entry>
</map>
</property>
</bean>
<bean id="videoOrder" class="net.cybclass.sp.domain.VideoOrder">
<property name="id" value="8"></property>
<property name="outTradeNo" value="12312"></property>
<property name="video" ref="video"></property>
</bean>
List和Map注入
Video.java
package net.cybclass.sp.domain; import java.util.List;
import java.util.Map; public class Video {
private int id;
private String title;
private List<String> chapterList;
private Map<Integer, String> videoMap; public List<String> getChapterList() {
return chapterList;
} public void setChapterList(List<String> chapterList) {
this.chapterList = chapterList;
} public Map<Integer, String> getVideoMap() {
return videoMap;
} public void setVideoMap(Map<Integer, String> videoMap) {
this.videoMap = videoMap;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
}
}
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="video" class="net.cybclass.sp.domain.Video">
<!--list 类型注入-->
<property name="chapterList">
<list>
<value>第一章SpringBoot</value>
<value>第二章Mybatis</value>
<value>第三章Spring</value>
</list>
</property>
<!--注入map-->
<property name="videoMap">
<map>
<entry key="1" value="SpringCloud课程层"></entry>
<entry key="2" value="面试宝典"></entry>
<entry key="3" value="JavaWeb课程"></entry>
</map>
</property>
</bean>
</beans>
app.java
package net.cybclass.sp; import net.cybclass.sp.domain.Video;
import net.cybclass.sp.domain.VideoOrder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class app {
public static void main(String[] args) {
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Video video=(Video) applicationContext.getBean("video");
System.out.println(video.getChapterList());
System.out.println(video.getVideoMap());
}
}
验证

Spring5.X常见的注入方式的更多相关文章
- java 企业级开发中常见的注入方式
1.Spring 注入有四种方式: ・set 注入 这是最简单的注入方式,假设有一个 SpringAction,类中需要实例化一个 SpringDao 对象,那么就可以定义一个 private 的 S ...
- Spring的注入方式
Spring的注入方式 目录 Spring的注入方式 一.前言 二.常见的三种注入方式 2.1.Field注入 2.2 构造器注入 2.3 setter注入 三.构造器注入的好处 四.答疑 一.前言 ...
- spring六种种依赖注入方式
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
- Spring IOC(DI)之注入方式
一次被问到IOC的注入方式,当时脑袋一阵混乱,不知道噻.于是google了一下,发现众说纷纭,有说三种的,有说四种的.都滚犊子吧,还是看看官方文档吧. DI exists in two major v ...
- Windows用户模式下注入方式总结
注入技术在病毒木马.游戏.打补丁等编程中应用很广泛,学习该技术不仅能帮助理解Windows工作原理,还能对病毒木马技术手段有更加深刻的理解,下面我们了解下各种注入方式吧. 一.DLL注入 在注入技术中 ...
- 反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) C#中缓存的使用 C#操作redis WPF 控件库——可拖动选项卡的TabControl 【Bootstrap系列】详解Bootstrap-table AutoFac event 和delegate的分别 常见的异步方式async 和 await C# Task用法 c#源码的执行过程
反爬虫:利用ASP.NET MVC的Filter和缓存(入坑出坑) 背景介绍: 为了平衡社区成员的贡献和索取,一起帮引入了帮帮币.当用户积分(帮帮点)达到一定数额之后,就会“掉落”一定数量的“帮帮 ...
- 项目一:第十二天 1、常见权限控制方式 2、基于shiro提供url拦截方式验证权限 3、在realm中授权 5、总结验证权限方式(四种) 6、用户注销7、基于treegrid实现菜单展示
1 课程计划 1. 常见权限控制方式 2. 基于shiro提供url拦截方式验证权限 3. 在realm中授权 4. 基于shiro提供注解方式验证权限 5. 总结验证权限方式(四种) 6. 用户注销 ...
- Spring中的注入方式 和使用的注解 详解
注解:http://www.cnblogs.com/liangxiaofeng/p/6390868.html 注入方式:http://www.cnblogs.com/java-class/p/4727 ...
- C#不用union,而是有更好的方式实现 .net自定义错误页面实现 .net自定义错误页面实现升级篇 .net捕捉全局未处理异常的3种方式 一款很不错的FLASH时种插件 关于c#中委托使用小结 WEB网站常见受攻击方式及解决办法 判断URL是否存在 提升高并发量服务器性能解决思路
C#不用union,而是有更好的方式实现 用过C/C++的人都知道有个union,特别好用,似乎char数组到short,int,float等的转换无所不能,也确实是能,并且用起来十分方便.那C# ...
- spring几种依赖注入方式以及ref-local/bean,factory-bean,factory-method区别联系
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程 ...
随机推荐
- 关于SQL数据库Varchar字符串类型长度设计问题(转载)
为什么要合理的设计数据库字段数据类型的长度?个人观点:一个是降低物理上的存储空间,一个是提高数据库的处理速度,还有一个附带功能是能校验数据是否合法. 现代数据库一般都支持CHAR与VARCHAR字 ...
- Kingbase+sqlsugar 携手助力医疗国产化替换 【人大金仓 .NET ORM】
1. 案例 西京医院CT预约系统, 该项目在2024年初进行上线测试,在正常运行了两天后,业务系统报错:The connection pool has been exhausted, either r ...
- C#应用的欢迎界面窗体方案 - 开源研究系列文章
这次整理以前的代码,然后想到了应用的欢迎界面窗体的问题.这个例子是在应用中启动一个线程来进行显示欢迎窗体的,对于应用的启动无影响,与其他人的源码不相同,欢迎读者进行复用此类库. 以前有编写过欢迎界面窗 ...
- Clion代码自动格式化保存
目录 前言 使用外部工具Artistic Style Clion 插件配置 注意 前言 使用Clion的时候,可以自动格式化代码的操作. 使用外部工具Artistic Style 序号 名称 地址 1 ...
- C 语言编程 — 基本语法
目录 文章目录 目录 前文列表 C 语言 C 语言的版本 C 语言的特点 C 语言的优点 C 语言的缺点 搭建编程环境 基本语法 前文列表 <程序编译流程与 GCC 编译器> C 语言 C ...
- 【题解】A19337.火星背包
\(\bf{用 CDQ 分治可以极大地提升程序运行的速度.}\) \(\bf{实测在本数据量下,可以在 \color{red}10ms\color{normal}} 内通过所有的测试点!\) 关于折半 ...
- mvc5接口报错:The JSON request was too large to be deserialized的一种原因
是mvc5版本的接口,接口使用了dynamic接收数组,json对象数组只有56个,length长度不到10万,但是提交就报The JSON request was too large to be d ...
- Python Pandas 数据分组
在数据处理中,分箱.分组是一种常见的技术,用于将连续数据的间隔分组到"箱"或"桶"中.我们将讨论以下两种方法: 使用 Pandas 的 between 和 lo ...
- 8.24考试总结(NOIP模拟47)[Prime·Sequence·Omeed]
时间带着明显的恶意,缓缓在我的头顶流逝. T1 Prime 解题思路 成功没有签上到... 一看数据范围 \(R-L+1\le 10^7,R\le 10^{14}\) ,这肯定是判断范围内的数字是否可 ...
- SMOGN算法Python实现:解决回归分析中的数据不平衡
本文介绍基于Python语言中的smogn包,读取.csv格式的Excel表格文件,实现SMOGN算法,对机器学习.深度学习回归中,训练数据集不平衡的情况加以解决的具体方法. 在不平衡回归问题 ...