标签:struct 机制 private 默认 work 核心技术 rgs 方法 补充
控制反转(IOC)&依赖注入(DI),AOP(面向切面编程)
指利用配置文件的关系,来决定类之间的引用关系,以及数据的设置操作。
默认在applicationContext文件中配置的程序都可以自动通过spring容器加载时自动对对象实例化。
但是自动进行初始化的时候,调用的是类中的无参构造方法,而且通过反射机制可以知道,无参构造方法一定比有参构造方法的实例化更容易。
但是spring简化了反射的处理机制。利用spring中的动态的特性可以直接明确调用构造方法参数。
除了有之前的通过index,参数类型配置bean。
Dept类:
package com.Spring.Demo; import java.beans.ConstructorProperties; public class Dept { private Integer deptno; private String name; @ConstructorProperties(value={"paramDeptno","paramDeptName"}) public Dept(Integer deptno, String name) { this.deptno = deptno; this.name = name; } @Override public String toString() { return "Dept [deptno=" + deptno + ", name=" + name + "]"; } }
调用这个方法:
package com.Spring.Demo; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestDept { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); Dept dept=ctx.getBean("dept",Dept.class); System.out.println(dept); } }
Dept.java类 设置参数名称:
@ConstructorProperties(value={"paramDeptno","paramDeptName"}) public Dept(Integer deptno, String name) { this.deptno = deptno; this.name = name; }
也就是说设置的时候可以使用paramDeptno来代替索引0,paramDeptName代替索引1。
利用参数名称进行设置:
<bean id="dept" class="com.Spring.Demo.Dept"> <constructor-arg name="paramDeptno" value="10" ></constructor-arg> <constructor-arg name="paramDeptName" value="开发部门" ></constructor-arg> </bean>
真使用构造方法,还是使用参数的类型和顺序编写比较方便。
标签:struct 机制 private 默认 work 核心技术 rgs 方法 补充
原文地址:http://www.cnblogs.com/alsf/p/7899018.html