本文供以下文章参考使用:
Spring笔记
https://blog.csdn.net/qq_34378496/article/details/128095043java bean:
package com.evenif.bean;
public class Index {
private int id;
private String name;
public Index() {
System.out.println("create Index class");
}
public Index(int id, String name) {
this.id = id;
this.name = name;
System.out.println("create Index class with params");
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Index{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
工厂类:
package com.evenif.factory;
import com.evenif.bean.Index;
public class MyFactory {
public static Index newIndexInstance(int id,String name){
return new Index(id,name);
}
}
配置文件:
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 静态工厂 -->
<bean id="indexFromFactory" class="com.evenif.factory.MyFactory" factory-method="newIndexInstance">
<constructor-arg name="id" value="7"/>
<constructor-arg name="name" value="iff07"/>
</bean>
<!-- 动态工厂 -->
<bean id="myDynamicFactory" class="com.evenif.factory.MyDynamicFactory" />
<!-- 该实例通过指定工厂的指定方法来创建 -->
<!-- 设置别名方法01 -->
<bean id="index" name="index02,index03 index04;index05" factory-bean="myDynamicFactory" factory-method="newIndexInstance">
<constructor-arg name="id" value="8"/>
<constructor-arg name="name" value="ifdf08"/>
</bean>
<!-- 设置别名方法02 -->
<alias name="index" alias="index01"/>
</beans>
主测试类:
package com.evenif;
import com.evenif.bean.Index;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//静态工厂获取对象
Index indexFromFactory = (Index) context.getBean("indexFromFactory");
System.out.println(indexFromFactory);
//动态工厂获取对象
Index indexFromDynamicFactory = (Index) context.getBean("index");
System.out.println(indexFromDynamicFactory);
Index indexAlias01 = (Index) context.getBean("index01");
System.out.println(indexAlias01);
Index indexAlias02 = (Index) context.getBean("index02");
System.out.println(indexAlias02);
Index indexAlias03 = (Index) context.getBean("index03");
System.out.println(indexAlias03);
Index indexAlias04 = (Index) context.getBean("index04");
System.out.println(indexAlias04);
Index indexAlias05 = (Index) context.getBean("index05");
System.out.println(indexAlias05);
}
}
//执行结果:
// create Index class with params
// create Index class with params
// Index{id=7, name='iff07'}
// Index{id=8, name='ifdf08'}
// Index{id=8, name='ifdf08'}
// Index{id=8, name='ifdf08'}
// Index{id=8, name='ifdf08'}
// Index{id=8, name='ifdf08'}
// Index{id=8, name='ifdf08'}
版权声明:本文为qq_34378496原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。