13、(知识篇)Spring使用xml配置bean02
来源:互联网 发布:淘宝汉服商家那家正规 编辑:程序博客网 时间:2024/06/05 11:52
//1、通過靜態工廠方法配置bean
//在配置bean中使用factory-method 指定靜態方法,返回指定的bean(用constructor-arg指定參數)
Bean部分:
静态工厂模式获取bean类
applicationContext.xml部分:
//在配置bean中使用factory-method 指定靜態方法,返回指定的bean(用constructor-arg指定參數)
//<bean id="factorystatic" class="com.spring.bean.FactoryStatic" factory-method="getPerson">
//2、用實例工廠方法配置bean
//2.1首先配置工廠bean<bean id="factoryinstance" class="com.spring.bean.FactoryInstance"></bean>
//2.2創建bean 通過factory-bean指定工廠、通過factory-method指定工廠方法(用constructor-arg指定參數)
//<bean id="person" factory-bean="factoryinstance" factory-method="getPerson">
//3、通過FactoryBean返回Bean
//衹需要繼承類FactoryBean即可
//测试类
package com.spring.text;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.spring.bean.Person;public class Test {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");//1、通過靜態工廠方法配置bean//在配置bean中使用factory-method 指定靜態方法,返回指定的bean(用constructor-arg指定參數)//<bean id="factorystatic" class="com.spring.bean.FactoryStatic" factory-method="getPerson">Person person = (Person) ctx.getBean("factorystatic");System.out.println(person);//2、用實例工廠方法配置bean//2.1首先配置工廠bean<bean id="factoryinstance" class="com.spring.bean.FactoryInstance"></bean>//2.2創建bean 通過factory-bean指定工廠、通過factory-method指定工廠方法(用constructor-arg指定參數)//<bean id="person" factory-bean="factoryinstance" factory-method="getPerson">Person person2 = (Person) ctx.getBean("person");System.out.println(person2);//3、通過FactoryBean返回Bean//衹需要繼承類FactoryBean即可Person person3 = (Person) ctx.getBean("factoryPerson");System.out.println(person3);}}
Bean部分:
Person类
package com.spring.bean;public class Person {private String name;private int age;public Person() {super();// TODO Auto-generated constructor stub}public Person(String name, int age) {super();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;}@Overridepublic String toString() {return "Person [name=" + name + ", age=" + age + "]";}}
静态工厂模式获取bean类
package com.spring.bean;import java.util.HashMap;import java.util.Map;public class FactoryStatic {private static Map<Integer, Person> persons = new HashMap<>();static {persons.put(1, new Person("超人", 20));persons.put(2, new Person("綠燈俠", 23));persons.put(3, new Person("閃電俠", 18));}public static Person getPerson(int index) {return persons.get(index);}}
实例工厂获取bean类
package com.spring.bean;import java.util.HashMap;import java.util.Map;public class FactoryInstance {private static Map<Integer, Person> persons = new HashMap<>();public FactoryInstance() {super();// TODO Auto-generated constructor stubpersons.put(1, new Person("超人", 20));persons.put(2, new Person("綠燈俠", 23));persons.put(3, new Person("閃電俠", 18));}public Person getPerson(int index) {return persons.get(index);}}
package com.spring.bean;import org.springframework.beans.factory.FactoryBean;public class FactoryPerson implements FactoryBean<Person> {@Overridepublic Person getObject() throws Exception {// TODO Auto-generated method stubreturn new Person("超人",20);}@Overridepublic Class<?> getObjectType() {// TODO Auto-generated method stubreturn Person.class;}@Overridepublic boolean isSingleton() {// TODO Auto-generated method stubreturn false;}}
applicationContext.xml部分:
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 通過靜態工廠獲取bean --><bean id="factorystatic" class="com.spring.bean.FactoryStatic" factory-method="getPerson"><constructor-arg name="index" value="2"></constructor-arg></bean><!-- 通過實例工廠獲取bean --><bean id="factoryinstance" class="com.spring.bean.FactoryInstance"></bean><bean id="person" factory-bean="factoryinstance" factory-method="getPerson"><constructor-arg name="index" value="3"></constructor-arg></bean><!-- 通過FactoryBean獲取bean --><bean id="factoryPerson" class="com.spring.bean.FactoryPerson"></bean></beans>
0 0
- 13、(知识篇)Spring使用xml配置bean02
- 15、(知识篇)Spring使用Annotation配置bean02(泛型IOC)
- 12、(知识篇)Spring使用xml配置bean01
- 17、(知识篇)Spring使用AOP(XML方式)
- 使用XML配置Spring AOP
- 14、(知识篇)Spring使用Annotation配置bean01
- Spring的AOP使用xml配置
- spring使用注解@PostConstruct的xml配置
- spring使用AOP如何配置ApplicationContext.xml
- 使用 spring web 3.0 配置web.xml
- 【Spring】装配Bean-(1)-使用XML配置
- spring 事务一致性使用xml配置
- spring使用aop时xml中的配置
- Spring的AOP使用xml配置
- Spring xml 配置使用外部config 文件
- 使用XML Schema配置spring事务管理
- Spring @Scheduled不起作用 使用xml配置
- 简化Spring XML配置---使用注解装配
- 时间格式类
- 数据结构实验之查找三:树的种类统计
- 集合List,ArrayList,Collection第15天
- navicat for mysql ,从远程数据库中到数据到本地数据库(笨办法)
- JAVA WEB 学习笔记 Idea下常用配置-Hello Servlet。
- 13、(知识篇)Spring使用xml配置bean02
- codeforces 358
- 时间复杂度
- Java虚拟机(一)
- HMM 隐马尔可夫模型 代码实现
- 第十五周oj训练——统计字符串种类(2569)
- PAT 1123. Is It a Complete AVL Tree (30)
- windows下常用网络命令
- 51nod 1127 最短的包含字符串【尺取法】