博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring 使用工厂方法实例化对象
阅读量:4050 次
发布时间:2019-05-25

本文共 1908 字,大约阅读时间需要 6 分钟。

– Start


如果某个对象需要通过静态工厂或实例化工厂来创建,spring 该如何配置呢?

静态工厂

首先定义一个类,需要通过静态工厂创建对象。

package shangbo.spring.core.example5;public class OutPutService {	private static OutPutService outPutService = new OutPutService();	private OutPutService() {	}	// 静态工厂	public static OutPutService createInstance() {		return outPutService;	}	public void outPut() {		System.out.println("Hello World");	}}

然后定义 XML 配置文件。

最后是测试类。

package shangbo.spring.core.example5;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {	public static void main(String[] args) {		// 实例化 Spring IoC 容器		ApplicationContext context = new ClassPathXmlApplicationContext("example.xml", OutPutService.class);		// 从容器中获得 Service 对象		OutPutService printer = context.getBean(OutPutService.class);		// 使用对象		printer.outPut();	}}

实例化工厂

首先定义一个类。

package shangbo.spring.core.example6;public class OutPutService {	public void outPut() {		System.out.println("Hello World");	}}

然后定义一个工厂类。

package shangbo.spring.core.example6;public class ServiceLocator {	private static OutPutService outPutService = new OutPutService();	private ServiceLocator() {	}	// 工厂方法	public OutPutService createOutPutServiceInstance() {		return outPutService;	}}

现在看看 XML 该如何配置。

最后定义测试类。

package shangbo.spring.core.example6;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {	public static void main(String[] args) {		// 实例化 Spring IoC 容器		ApplicationContext context = new ClassPathXmlApplicationContext("example.xml", OutPutService.class);		// 从容器中获得 OutPutService 对象		OutPutService printer = context.getBean(OutPutService.class);		// 使用对象		printer.outPut();	}}

– 声 明:转载请注明出处
– Last Updated on 2017-06-17
– Written by ShangBo on 2017-05-21
– End

你可能感兴趣的文章
openstack虚拟机创建流程
查看>>
openstack网络总结
查看>>
excel 查找一个表的数据在另一个表中是否存在
查看>>
centos 7 上配置dnsmasq 同时支持ipv4和ipv6的DHCP服务
查看>>
AsyncTask、View.post(Runnable)、ViewTreeObserver三种方式总结frame animation自动启动
查看>>
Android中AsyncTask的简单用法
查看>>
java反编译命令
查看>>
activemq依赖包获取
查看>>
概念区别
查看>>
final 的作用
查看>>
在Idea中使用Eclipse编译器
查看>>
Idea下安装Lombok插件
查看>>
zookeeper
查看>>
Idea导入的工程看不到src等代码
查看>>
技术栈
查看>>
Jenkins中shell-script执行报错sh: line 2: npm: command not found
查看>>
8.X版本的node打包时,gulp命令报错 require.extensions.hasownproperty
查看>>
Jenkins 启动命令
查看>>
Maven项目版本继承 – 我必须指定父版本?
查看>>
通过C++反射实现C++与任意脚本(lua、js等)的交互(二)
查看>>