本文共 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(); }} 第二种方式:静态工厂生成方式 第三种方式:实例工厂生成方式