spring 如何管理 bean[spring 管理的对象] 和依赖关系?
①:通过 构造器创建一个 bean 实例
通过调用 ClassPathXmlApplicationContext 的 getBean 方法可以获取到一个 bean 的实例。
bean:
package com.test.spring.bean;
/**
*
* @ClassName: XiaoHui
* @Description: TODO POJO
* @author: luoyc
* @date: 2017年4月22日 下午4:01:40
*/
public class XiaoHui {
String name;
String sex;
int age;
String address;
public XiaoHui() {
// TODO Auto-generated constructor stub
System.out.println("肖慧小朋友...");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
package com.test.spring.bean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[]{"applicationContext.xml"});
XiaoHui x = context.getBean("xiaohui",XiaoHui.class);
x.setName("肖慧");
System.out.println(x.getName());
}
}
<bean name="xiaohui" class="com.test.spring.bean.XiaoHui" />
②:通过 工厂方法创建一个 bean 实例
package com.test.spring.bean;
/**
* @ClassName: InstanceClass
* @Description: TODO 使用工厂方法来 new 对象
* @author: luoyc
* @date: 2017年4月22日 下午3:50:10
*/
public class InstanceClass {
public static XiaoHui getInstance(){
System.out.println("这里是InstanceClass.getInstance 工厂来 new 对象");
return new XiaoHui();
}
}
<!-- 使用工厂方法实例化 XiaoHui,实际上这里还是一个 XiaoHui 的bean -->
<bean name="instance" class="com.test.spring.bean.InstanceClass"
factory-method="getInstance" />
package com.test.spring.bean;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[]{"applicationContext.xml"});
XiaoHui x1 = context.getBean("instance",XiaoHui.class);
x1.setAddress("使用工厂方法创建对象");
System.out.println(x1.getAddress());
}
}