2.Spring【DI】XML方式
依赖:
在A类中引用了B类,说明A依赖于B。
注入:
使用Spring框架给A类中的B对象的属性赋值。
直接上代码:
1.只使用IOC
public class Person { private String name; private int age; 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 + "]"; } }
<bean id="person" class="com.spring.demo1.Person"/>
/** * 只使用IOC */ @Test public void m01(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ac.getBean("person"); p.setAge(10); p.setName("10岁的boy"); System.out.println(p); }
2.使用IOC+DI
<bean id="person" class="com.spring.demo1.Person"> <property name="name" value="30岁的man"/> <property name="age" value="30"/> </bean>
/** * 使用IOC+DI */ @Test public void m02(){ ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); Person p = (Person) ac.getBean("person"); System.out.println(p); }
两种注入方式
1.通过setter方法注入------开发常用
上述的依赖注入方法↑↑↑↑↑↑↑↑↑
在编写的JAVA类中加入属性的set方法
配置文件:(property)
<bean id="person" class="com.spring.demo1.Person"> <property name="name" value="30岁的man"/> <property name="age" value="30"/> </bean>
2.通过构造方法注入
在编写的JAVA类中加入有参构造方法
配置文件:(constructor-arg)
<bean id="person" class="com.spring.demo1.Person"> <constructor-arg name="name" value="40岁的person"/> <constructor-arg name="age" value="40"/> </bean>
注意:
如果属性是另一个JAVA类,应该将 value属性 改为 ref
<bean id="car" class="com.spring.Car"/> <bean id="person" class="com.spring.Person"> <property name="name" value="man"/> <property name="car" ref="car"/> </bean>
数组,集合(List,Set,Map),Properties等的注入
1. 如果是数组或者List集合,注入配置文件的方式是一样的 <bean id="collectionBean" class="com.spring.CollectionBean"> <property name="arrs"> <list> <value>呵呵</value> <value>哈哈</value> </list> </property> </bean> 2. 如果是Set集合,注入的配置文件方式如下: <property name="sets"> <set> <value>哈哈</value> <value>呵呵</value> </set> </property> 3. 如果是Map集合,注入的配置方式如下: <property name="map"> <map> <entry key="老王1" value="38"/> <entry key="老王2" value="38"/> <entry key="老王3" value="29"/> </map> </property> 4. 如果是properties属性文件的方式,注入的配置如下: <property name="pro"> <props> <prop key="username">root</prop> <prop key="password">root</prop> </props> </property>
2.Spring【DI】XML方式的更多相关文章
- Spring基于XML方式的使用
一.IoC配置 IoC的配置是通过Spring的xml文件的bean标签进行的. 1.bean标签介绍 bean标签一般是在xml文件进行配置的,xml文件一般样式如下: <?xml versi ...
- 【Spring】XML方式实现(无参构造 有参构造)和注解方式实现 IoC
文章目录 Spring IoC的实现方式 XML方式实现 通过无参构造方法来创建 1.编写一个User实体类 2.编写我们的spring文件 3.测试类 UserTest.java 4.测试结果 通过 ...
- Spring通过XML方式实现定时任务
package com.wisezone.service; import java.text.SimpleDateFormat; import java.util.Date; import org.s ...
- Spring基于XML方式加载Bean定义信息(又名:Spring IOC源码时序图)-图解
- Spring 简单使用IoC与DI——XML配置
目录 Spring简介 导入jar包 Spring配置文件 Spring的IoC IoC简介 快速使用IoC Spring创建对象的三种方式 使用构造方法 使用实例工厂 使用静态静态工厂 Spring ...
- Spring总结四:IOC和DI 注解方式
首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式 ...
- spring aop 使用xml方式的简单总结
spring aop的 xml的配置方式的简单实现: 1.编写自己的切面类:配置各个通知类型 /** * */ package com.lilin.maven.service.aop; import ...
- 使用spring框架,用xml方式进行bean装配出现“The fully qualified name of the bean's class, except if it serves...”
使用spring框架,用xml方式进行bean装配出现“The fully qualified name of the bean's class, except if it serves...”. 原 ...
- 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)
Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式 √ id:标识容器中的bean.id唯一. √ cl ...
- Spring声明式事务管理(基于XML方式实现)
--------------------siwuxie095 Spring 声明式事务管理(基于 XML 方式实现) 以转账为例 ...
随机推荐
- php 三种文件下载的实现
第一种:直接添加文件下载的绝对路径连接 //如:我有一个文件在demo.xx.cn/demo.zip <button> <a href = "http://demo.xx. ...
- 【JZOJ6287】扭动的树
description analysis 区间\(DP\),首先按照键值排个序,这样保证树的中序遍历就为原序列 设\(f[0][i][j]\)表示\([i..j]\)区间作为\([unknown..i ...
- HTML学习笔记 表单元素
<form></form>代表表单 action:往什么地方提交 method:提交方式 get显示提交(不安全) post隐视提交(安全) 提交内容: name=输入的 ...
- 数据库实例性能调优利器:Performance Insights
Performance Insights是什么 阿里云RDS Performance Insights是RDS CloudDBA产品一项专注于用户数据库实例性能调优.负载监控和关联分析的利器,以简单直 ...
- thinkphp 伪静态
URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行.例 ...
- docker删除未使用到的镜像
docker image prune -a docker image prune -a -f #-f强制,不需要确认
- 关于maven工程将model删除重建之后变为灰色的问题的解决
问题描述: IDEA中的maven工程中有时候将model或者子model建错,删除之后,子模块在maven在侧栏的maven projects中是灰色的,而且是并没有依赖父工程 在网上搜了搜解决办法 ...
- [JZOJ 5698] 密码锁
思路: 差分+排序 #include <bits/stdc++.h> using namespace std; #define ll long long const int maxn = ...
- eax,ebx,ecx,edx,esi,edi,ebp,esp寄存器的作用
位的寄存器.如果用C语言来解释,可以把这些寄存器当作变量看待. 比方说:add eax,-2 ; //可以认为是给变量eax加上-2这样的一个值. 位寄存器有多种用途,但每一个都有"专长 ...
- 河南理工大学算法协会暑期集训积分赛(二)网络同步赛-Numbers of interval-尺取法
原题链接:https://hpuoj.com/contest/24/problem/E/ 思路:一般的尺取法,不断更新左端点的值. #include<iostream> #include& ...