Spring中的工厂类

目录

1.ApplicationContext

4.2.BeanFactory


1.ApplicationContext

ApplicationContext的实现类,如下图:

  • ClassPathXmlApplicationContext:加载类路径下 Spring 的配置文件

  • FileSystemXmlApplicationContext:加载本地磁盘下 Spring 的配置文件

4.2.BeanFactory

  • spring中工厂的类结构图

配置文件pom.xml:

<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.1.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.7.30</version>
        </dependency>
    </dependencies>
  • 区别:

    • ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。

/**
 * 业务层实现类
 */
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public UserServiceImpl() {
        System.out.println("UserServiceImpl对象创建了...");
    }

    public UserServiceImpl(UserDaoImpl userDao) {
        this.userDao = userDao;
    }

    public void addUser(){
        userDao.addUser();
    }
}
/**
 * 模拟表现层
 */
public class Client {
    public static void main(String[] args) {
        new ClassPathXmlApplicationContext("applicationContext.xml");
        System.out.println("Spring IOC容器创建好了");
    }
}

BeanFactory:是在 getBean 的时候才会创建对象。

/**
 * 业务层实现类
 */
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public UserServiceImpl() {
        System.out.println("UserServiceImpl对象创建了...");
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void addUser(){
        userDao.addUser();
    }
}
 /**
   * 模拟表现层
   */
  public class Client {
      public static void main(String[] args) {
          new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
          System.out.println("Spring IOC容器创建好了");
      }
  }

相关推荐

  1. Spring框架ResourceUtils:资源工具深度解析

    2024-01-05 14:46:07       8 阅读
  2. 探索 C++ string

    2024-01-05 14:46:07       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-05 14:46:07       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-05 14:46:07       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-05 14:46:07       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-05 14:46:07       18 阅读

热门阅读

  1. 整理composer安装版本的python脚本

    2024-01-05 14:46:07       37 阅读
  2. LeetCode 33 搜索旋转排序数组

    2024-01-05 14:46:07       38 阅读
  3. 举例说明自然语言处理(NLP)技术

    2024-01-05 14:46:07       33 阅读
  4. hive问题记录

    2024-01-05 14:46:07       34 阅读
  5. React格式化规范

    2024-01-05 14:46:07       35 阅读
  6. React监听窗口宽度变化 触发resize(Hooks版本)

    2024-01-05 14:46:07       33 阅读
  7. 微信小程序:selectComponent返回null的问题

    2024-01-05 14:46:07       37 阅读
  8. 查询Oracle数据库版本有几种方法

    2024-01-05 14:46:07       39 阅读
  9. 数据库系统原理总结之——数据库系统概述

    2024-01-05 14:46:07       31 阅读
  10. 如何用GPT完成论文高效写作?

    2024-01-05 14:46:07       32 阅读
  11. 编程语言的未来趋势:技术进步中的创新与发展

    2024-01-05 14:46:07       30 阅读