千家信息网

Spring中DI依赖注入的示例分析

发表于:2024-09-26 作者:千家信息网编辑
千家信息网最后更新 2024年09月26日,这篇文章将为大家详细讲解有关Spring中DI依赖注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、什么是DI依赖注入?spring动态的向某个对象提
千家信息网最后更新 2024年09月26日Spring中DI依赖注入的示例分析

这篇文章将为大家详细讲解有关Spring中DI依赖注入的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1、什么是DI依赖注入?

spring动态的向某个对象提供它所需要的其他对象。这一点是通过DI(Dependency Injection,依赖注入)来实现的。比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了 spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖 Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。

简单来说什么是依赖注入,就是给属性赋值(包括基本数据类型和引用数据类型)

2、利用 set 方法给属性赋值

第一步:创建工程,并导入相应的 jar 包

第二步:创建实体类 Person

package com.ys.di; import java.util.List;import java.util.Map;import java.util.Properties;import java.util.Set; public class Person {    private Long pid;    private String pname;    private Student students;    private List lists;    private Set sets;    private Map maps;    private Properties properties;         public Long getPid() {        return pid;    }    public void setPid(Long pid) {        this.pid = pid;    }    public String getPname() {        return pname;    }    public void setPname(String pname) {        this.pname = pname;    }    public Student getStudents() {        return students;    }    public void setStudents(Student students) {        this.students = students;    }    public List getLists() {        return lists;    }    public void setLists(List lists) {        this.lists = lists;    }    public Set getSets() {        return sets;    }    public void setSets(Set sets) {        this.sets = sets;    }    public Map getMaps() {        return maps;    }    public void setMaps(Map maps) {        this.maps = maps;    }    public Properties getProperties() {        return properties;    }    public void setProperties(Properties properties) {        this.properties = properties;    }     }

我们看到这个实体类包括引用类型 Student 类,基本数据类以及集合数据类型。

第三步:在 applicationContext.xml 中进行赋值

                                                     1                        vae                                         1                        vae                                                                                                                             p1            p2                     

第四步:测试

//利用 set 方法给对象赋值    @Test    public void testSet(){        //1、启动 spring 容器        //2、从 spring 容器中取出数据        //3、通过对象调用方法        ApplicationContext context =                new ClassPathXmlApplicationContext("applicationContext.xml");        Person person = (Person) context.getBean("person");        System.out.println(person.getPname());//vae    }

3、利用 构造函数 给属性赋值

第一步:在实体类 Per'son.java 中添加两个构造方法:有参和无参

//默认构造函数    public Person(){}    //带参构造函数    public Person(Long pid,Student students){        this.pid = pid;        this.students = students;    }

第二步:在 applicationContext.xml 中进行赋值

                                               

第三步:测试

//利用 构造函数 给对象赋值    @Test    public void testConstrutor(){        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");        Person person = (Person) context.getBean("person_con");        System.out.println(person.getPid());//1    }

关于"Spring中DI依赖注入的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

对象 数据 方法 函数 属性 类型 实体 篇文章 运行 示例 分析 动态 容器 就是 时候 更多 反射 测试 不错 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 微拓网络技术公司电话 服务器上传文件需要怎么设置 现代战舰服务器修复情况 从数据库修改凭证上的核算项目 艾尔登法环老是断开服务器怎么办 怎么换网关和服务器的地址 公共课网络安全 nas服务器系统 宜阳软件开发 什么电脑配置可以做服务器 赣州公安局网络安全 6月至8月开展摄像头网络安全 批量删除数据库不存在的图片 信息和网络安全教育手抄报图片 手机短信显示无法连接服务器 数据库版本恢复 墡五笔软件开发 云服务器群集 数据库计算机与普通计算机 网络安全与执法专业有前途吗 平谷区技术软件开发介绍 数据库怎么存放集合 计算机网络技术实习论文 海康威视管理平台服务器 需求出错对软件开发的影响 宁波锦衣连德网络技术有限公司 广发银行软件开发笔试考什么 南京营销网络技术口碑推荐 上海网络技术咨询是什么 科学出版社数据库技术及应用
0