一 通过构造函数注入
set注入的缺点是无法清晰表达哪些属性是必须的,哪些是可选的,构造注入的优势是通过构造强制依赖关系,不可能实例化不完全的或无法使用的bean。
二 举例
1Employee
package com.hsp.constructor;public class Employee { private String name; private int age; public Employee(String name) { System.out.println("Employee(String name) 函数被调用.."); this.name = name; this.age = age; } public Employee(String name, int age) { System.out.println("Employee(String name, int age) 函数被调用.."); this.name = name; this.age = 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; }}
2beans.xml
3App1
package com.hsp.constructor;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App1 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext ac=new ClassPathXmlApplicationContext("com/hsp/constructor/beans.xml"); Employee ee=(Employee) ac.getBean("employee"); System.out.println(ee.getName()); }}
三 测试结果
Employee(String name) 函数被调用..大明