静态工厂方法创建Bean(一)"/>
Spring使用静态工厂方法创建Bean(一)
整体代码结构:
Being.java:
package com.kinsey.woo.staticfactory.app.service;public interface Being {public void say();
}
Cat.java
package com.kinsey.woo.staticfactory.app.dto;import com.kinsey.woo.staticfactory.app.service.Being;public class Cat implements Being {public String msg;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Cat(String msg){this.msg = msg;}@Overridepublic void say() {System.out.println(msg+ ",猫爱吃鱼.");}}
Dog.java
package com.kinsey.woo.staticfactory.app.dto;import com.kinsey.woo.staticfactory.app.service.Being;public class Dog implements Being {public String msg;public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}public Dog(String msg) {super();this.msg = msg;}@Overridepublic void say() {System.out.println(msg + ",狗爱吃骨头.");}}
静态工厂类
AnimalStaticFactory.java
package com.kinsey.woo.staticfactory;import com.kinsey.woo.staticfactory.app.dto.Cat;
import com.kinsey.woo.staticfactory.app.dto.Dog;
import com.kinsey.woo.staticfactory.app.service.Being;public class AnimalStaticFactory {private final static String CAT = "cat";private final static String DOG = "dog";public static Being produce(String msg){if(AnimalStaticFactory.CAT.equals(msg)){return new Cat(msg);}else if(AnimalStaticFactory.DOG.equals(msg)){return new Dog(msg);}else{return new Being() {@Overridepublic void say() {System.out.println("匿名方法");}};}}}
RunMain.java
package com.kinsey.woo.staticfactory;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.kinsey.woo.staticfactory.app.dto.Cat;
import com.kinsey.woo.staticfactory.app.dto.Dog;public class RunMain {public static void main(String[] args) {@SuppressWarnings("resource")ApplicationContext ctx = new ClassPathXmlApplicationContext("springconf.xml"); Cat cat = (Cat) ctx.getBean("cat");Dog dog = (Dog) ctx.getBean("dog");cat.say();dog.say();}
}
结果见图一。
更多推荐
Spring使用静态工厂方法创建Bean(一)
发布评论