在been下创建Users类,代码在最底下
得到对象
springConfig.xml的代码
<bean id="user1" class="com.fdk.been.Users" scope="prototype" "></bean>
测试代码
public static void main(String[] args){
//加载配置文件
ApplicationContext app=new ClassPathXmlApplicationContext("springConfig.xml");
//得到对象
//scope属性,singleton为单例,得到的是同一个对象,prototype相反
//init-method="inituser" 初始化方法
// destroy-method="deluser" 销毁方法
Users u=(Users) app.getBean("user1");
Users u1=(Users) app.getBean("user1");
System.out.println(u);
System.out.println(u1);
}
得到静态方法
springConfig.xml的代码,factory-method
<bean id="user1" class="com.fdk.been.Users" scope="prototype" init-method="inituser"
destroy-method="deluser" factory-method="createUsers">
测试代码
//静态方法测试
@Test
public void test1(){
ApplicationContext app=new ClassPathXmlApplicationContext("springConfig.xml");
Users u=(Users) app.getBean("user1");
System.out.println(u);
}
得到非静态方法
springConfig.xml的代码,factory-bean 得到对象
factory-method加载对象方法
<!--非静态方法需要先创建对象,在调用方法-->
<bean id="user3" class="com.fdk.been.Users"></bean>
<bean id="user2" factory-bean="user3" factory-method="createUser1"></bean>
Users代码
public class Users {
private String name;
private int age;
private String adr;
private Grade gr;
public Users(){
System.out.println("user无参构造函数");
}
public Users(String name, int b) {
System.out.println("user name,age构造函数");
this.name = name;
this.age = b;
}
public Users(int name, String b) {
System.out.println("user age,adr构造函数");
this.age = name;
this.adr = b;
}
public Users(Grade gr) {
System.out.println("user grade构造函数");
this.gr = gr;
}
public String getName() {
return name;
}
public void setName(String name) {
System.out.println("user setname函数");
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
System.out.println("user setage函数");
this.age = age;
}
public String getAdr() {
return adr;
}
public void setAdr(String adr) {
System.out.println("user setdar函数");
this.adr = adr;
}
public Grade getGr() {
return gr;
}
@Override
public String toString() {
return "Users{" +
"name='" + name + '\'' +
", age=" + age +
", adr='" + adr + '\'' +
", gr=" + gr +
'}';
}
public void setGr(Grade gr) {
System.out.println("user setgr函数");
this.gr = gr;
}
//初始化方法
public void inituser(){
System.out.println("init-user初始化方法");
}
//销毁
public void deluser(){
System.out.println("destory-user销毁方法");
}
//静态方法创建对象
public static Users createUsers(){
System.out.println("这是静态方法被执行");
return new Users();
}
//非静态方法创建对象
public Users createUser1(){
System.out.println("这是非静态方法被执行");
return new Users();
}
}