Spring框架 DI (二)
来源:互联网 发布:egd网络黄金合法吗 编辑:程序博客网 时间:2024/06/05 18:05
一、在Spring框架中如何给属性赋值呢?
其实,就是DI(Dependency Injection)依懒注入。
二、如何DI呢?有几种方式
spring框架为我们提供了三种注入方式;
(1)set注入 (必须封装setXXX方法)
public class Person {private Long pid; //包装类型private String pname; //String类型private Student student; //引用类型private List lists; //集合//3.3.2.4. 集合//通过<list/>、<set/>、<map/>及<props/>元素可以定义和设置与Java Collection类型对应List、Set、Map及Properties的值。public List getLists() {return lists;}public void setLists(List lists) {this.lists = lists;}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 getStudent() {return student;}public void setStudent(Student student) {this.student = student;}}
applicationContext.xml文件如下:
<bean id="person" class="com.hlx.hello.set.Person"> <property name="pid" value="1001"/> <property name="pname" value="菲菲"/> <property name="student" ref="mystudent"/> <property name="lists"> <list> <value>aaa</value> <value>ccc</value> <ref bean="mystudent"/> </list> </property></bean><bean id="mystudent" class="com.hlx.hello.set.Student"></bean>
(2)构造方法注入 (必须封装构造方法)
public class Person {private Long pid; // 包装类型private String pname; // String类型private Student student; // 引用类型public Person(Long pid, String pname, Student student) {super();this.pid = pid;this.pname = pname;this.student = student;}public Person(Long pid, String pname) {super();this.pid = pid;this.pname = pname;}}applicationContext.xml文件如下:
当参数为非字符串类型时,在配置文件中需要制定类型,如果不指定类型一律按照字符串类型赋值。
当参数类型不一致时,框架是按照字符串的类型进行查找的,因此需要在配置文件中制定是参数的位置
<!-- index :从0开始数; type: 对应的具体数据类型(可写可不写) value: 对应的值 ref :对应的引用类型 只能配置一个构造方法 --><bean id="person" class="com.hlx.hello.constructor.Person"> <constructor-arg index="0" type="java.lang.Long" value="1003"/> <constructor-arg index="1" value="pop"/> <constructor-arg index="2" ref="mystudent"/></bean>
(3)接口注入(接口注入不作要求忽略)
0 0
- Spring框架 DI (二)
- Spring框架内容整理(二):DI
- Spring框架之DI
- spring框架之DI
- Spring框架核心理论 AOP|DI
- Spring框架源码学习---DI的实现
- Spring框架简单DI注入操作
- Spring框架核心介绍:DI和AOP
- spring框架开发笔记 lesson2 DI
- Spring框架,个人笔记--IOC,DI,AOP
- spring框架的学习-DI依赖注入
- 1、Spring框架-IoC与DI
- Spring框架IOC,DI概念理解
- Spring框架IOC,DI概念理解
- Spring框架——IOC&DI
- Spring框架中的IOC和DI
- Spring学习之DI(二)
- (二)Spring的IOC&DI概述
- Navicat是如何连接到服务器的呢
- C++ 四种类型转换
- java高级之线程池
- Android EditText/TextView使用SpannableString显示复合文本
- TableView优化
- Spring框架 DI (二)
- 连接池(Connection Pool)技术
- 实现基于url级别的权限控制
- js事件流模型
- Android中EditText控件的Ime Options属性
- 【转】使用 PL/SQL 条件编译
- PHP高效率写法(详解原因)
- 二叉树(2)层次遍历
- 数据库引擎