04 spring中bean的工厂方法
发布日期:2022-03-30 20:19:35 浏览次数:26 分类:博客文章

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

接下来我们将看一下spring中bean的相关工厂方法。

1、前提约束

  • 完成spring中bean的模板继承与覆盖

2、操作步骤

2.1 静态工厂

  • 确保net.wanho.entity.User.java类存在
  • 在src/main/java文件夹下创建net.wanho.factory.StaticFactory.java,内容如下:
import net.wanho.entity.User;import java.util.HashMap;import java.util.Map;public class StaticFactory {    static Map
map = new HashMap<>(); static{ map.put("101",new User(1,"ali")); map.put("102",new User(2,"zhangli")); } public static User get(String id) { return map.get(id); }}
  • 在src/main/resources文件夹下创建bean-factory.xml文件,内容如下:

2.2 实例工厂

  • 在src/main/java文件夹下创建net.wanho.factory.StaticFactory.java,内容如下:
import net.wanho.entity.User;import java.util.HashMap;import java.util.Map;public class InstanceFactory {    private Map
map = new HashMap<>(); { map.put("101",new User(1,"ali")); map.put("102",new User(2,"xiaoli")); } public User getInstacne(String id) { return this.map.get(id); }}
  • 在src/main/resources的bean-factory.xml文件中加入以下内容:

2.3 FactoryBean

  • 在src/main/java文件夹下创建net.wanho.factory.UserFactoryBean.java,内容如下:
import net.wanho.entity.User;import org.springframework.beans.factory.FactoryBean;public class UserFactoryBean implements FactoryBean
{ private int id; @Override public User getObject() throws Exception { return new User(id,"xiaoli"); } @Override public Class
getObjectType() { return null; } @Override public boolean isSingleton() { return false; } public int getId() { return id; } public void setId(int id) { this.id = id; }}
  • 在src/main/resources的bean-factory.xml文件中加入以下内容:

2.4 测试,在src/main/java文件夹下创建TestBeanFactory.java,内容如下:

import net.wanho.entity.User;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestBeanFactory {    public static void main(String[] args) {        ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("bean-factory.xml");        //测试静态工厂        User user = applicationContext.getBean("user", User.class);        System.out.println();        //测试实例工厂        User user1 = applicationContext.getBean("user1 ",User .class);        //测试FactoryBean        User user2 = applicationContext.getBean("user2",User.class);    }}

以上就是spring中bean的工厂方法。

转载地址:https://www.cnblogs.com/alichengxuyuan/p/12554735.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:03 spring中bean的模板、继承与覆盖
下一篇:05 spring中的ioc的注解实现

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月20日 22时09分08秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章