spring_Dependency injection
来源:互联网 发布:sql表格联合主键 编辑:程序博客网 时间:2024/05/22 13:36
Dependency injection(依赖注入)
DI exists in two major variants, Constructor-based dependency injection and Setter-based dependency injection.
案例分析:
1、创建EmployeeBean类 代码如下:
package www.csdn.spring.constructor.bean;public class EmployeeBean {private String name;private Double salary;private Dept dept;private String sex;// 构造器函数public EmployeeBean(String name, Double salary, Dept dept, String sex) {super();this.name = name;this.salary = salary;this.dept = dept;this.sex = sex;}@Overridepublic String toString() {return "EmployeeBean [name=" + name + ", salary=" + salary + ", dept="+ dept + ", sex=" + sex + "]";}}
2、创建Dept类 代码如下:
package www.csdn.spring.constructor.bean;public class Dept {private String name;private String deptno;public void setName(String name) {this.name = name;}public void setDeptno(String deptno) {this.deptno = deptno;}@Overridepublic String toString() {return "Dept [name=" + name + ", deptno=" + deptno + "]";}}
3、创建配置文件
<?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"> <!-- 一、构造函数依赖注入(Constructor-based dependency injection) --><!-- 1、通过构造函数注入 (Constructor argument resolution)--><bean id="employeeBean1" class="www.csdn.spring.constructor.bean.EmployeeBean"><constructor-arg value="王晓而" /><constructor-arg value="100.0" /><constructor-arg ref="dept" /><constructor-arg value="男" /></bean><!-- 2、根据构造器参数的类型(Constructor argument type matching) --><bean id="employeeBean2" class="www.csdn.spring.constructor.bean.EmployeeBean"><constructor-arg type="java.lang.String" value="陈红均" /><constructor-arg type="java.lang.String" value="男" /><constructor-arg type="java.lang.Double" value="100.0" /><constructor-arg type="www.csdn.spring.constructor.bean.Dept"ref="dept" /></bean><!-- 3、通过构造函数根据索引index注入(Constructor argument index) --><bean id="employeeBean3" class="www.csdn.spring.constructor.bean.EmployeeBean"><constructor-arg index="0" value="陈红均" /><constructor-arg index="1" value="100.0" /><constructor-arg index="2" ref="dept" /><constructor-arg index="3" value="女" /></bean><!-- 4、通过构造函数根据name注入(Constructor argument name) --><bean id="employeeBean4" class="www.csdn.spring.constructor.bean.EmployeeBean"><constructor-arg name="name" value="陈红均" /><constructor-arg name="salary" value="100.0" /><constructor-arg name="dept" ref="dept" /><constructor-arg name="sex" value="男" /></bean> <!-- 二、Setter方法依赖注入(Setter-based dependency injection) --><bean id="dept" class="www.csdn.spring.constructor.bean.Dept"> <!-- 根据setter注入 --><property name="name" value="CSDN教育事业部" /><property name="deptno" value="0x0001" /></bean></beans>
4、创建测试代码:
@Testpublic void testBean(){ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-null.xml");MemberBean bean = context.getBean("memberBean1", MemberBean.class);System.out.println(bean.name);System.out.println(bean.member);System.out.println(bean.email);}
5、自己运行观看结果
- spring_Dependency injection
- SQL Injection
- Method Injection
- Javascript Injection
- SQL injection
- Interpreter Injection
- sql injection
- SQL Injection
- sql injection
- Dependency Injection
- sql Injection
- sql injection
- Dependency Injection
- Injection Molder
- Injection Mold
- Injection Molder
- JS Injection
- sql injection
- Printf参数说明
- poj 2486
- IOS 如何在使用Cocos2D中实现A星(A*)寻路算法
- 如果你不想一辈子做工程师,必看!
- 读书1
- spring_Dependency injection
- 6410 otg host 模式移植
- Android 适配
- LoadRunner测试时出现HTTP-500的可能原因
- 这么长时间都是在收集好的技术博客,以后也要在csdn上留下自己的足迹才好嘛
- QT控制mplayer
- v$log中status说明及redo log大小修改
- 控制不让为空
- 2013.4.25实验内容