博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring(5)---bean的3种实例化方式
阅读量:4087 次
发布时间:2019-05-25

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

bean的三种生成方式分别为:类直接生成方式,静态工厂生成方式和实例工厂生成方式

示例:

1 .新建项目spring_createBean

2 .新建com.cn.service包,并在该包下创建IUserService接口.在该接口下创建一个方法saveUser()

package com.cn.service;public interface IUserService {	public void saveUser();}
 
3 .新建com.cn.service.impl包,并在该包下创建UserServiceImpl类,该类实现IUserService接口
package com.cn.service.impl;import com.cn.service.IUserService;public class UserServiceImpl implements IUserService{	public void saveUser() {		System.out.println("调用方法......");	}}
 
4 .在classpath类路径下新建源文件config,在config下创建applicationContext.xml文件
 
5 .编写测试方法
第一种生成方式:类直接生成方式
package com.cn.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cn.service.IUserService;/** * 通过类直接生成方式创建bean * */public class Test {	public static void main(String[] args) {		ApplicationContext ctx=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");		IUserService userService=(IUserService) ctx.getBean("userService");		//调用方法		userService.saveUser();	}} 第二种方式:静态工厂生成方式 1 .在com.cn.service.impl包下新建UserObject类。在该类种创建一个静态方法 package com.cn.service.impl;import com.cn.service.IUserService;public class UserObject {	//静态方法	public static IUserService createUser(){		return new UserServiceImpl();	}} 2 .在applicationContext.xml中配置 
3 .测试 package com.cn.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cn.service.IUserService;public class Test2 { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); IUserService userService=(IUserService) ctx.getBean("userService2"); userService.saveUser(); }} 第三种方式:实例工厂生成方式 1 .在com.cn.service.impl包下新建UserObject2类 package com.cn.service.impl;import com.cn.service.IUserService;public class UserObject2 { //非静态方法 public IUserService createUser(){ return new UserServiceImpl(); }} 2 .在applicationContext.xml中新增配置如下
3.测试 package com.cn.test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.cn.service.IUserService;public class Test3 { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); IUserService userService=(IUserService) ctx.getBean("userService3"); userService.saveUser(); }} 第二种方式:静态工厂生成方式 第三种方式:实例工厂生成方式
你可能感兴趣的文章
本地推送
查看>>
FMDB的使用
查看>>
UIImage存为本地文件与UIImage转换为NSData
查看>>
[转]打印质数的各种算法
查看>>
[转]javascript with延伸的作用域是只读的吗?
查看>>
php的autoload与global
查看>>
IE不支持option的display:none属性
查看>>
[分享]mysql内置用于字符串型ip地址和整数型ip地址转换函数
查看>>
TableDnd(JQuery表格拖拽控件)应用进阶
查看>>
[转]开源中最好的Web开发的资源
查看>>
Https加密及攻防
查看>>
Java生成随机不重复推广码邀请码
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
String类的intern方法随笔
查看>>
【泛型】一个简易的对象间转换的工具类(DO转VO)
查看>>
1.随机函数,计算机运行的基石
查看>>
MouseEvent的e.stageX是Number型,可见as3作者的考虑
查看>>
移植Vim配色方案到Eclipse
查看>>
从超链接调用ActionScript
查看>>