首页 > 其他分享 >Spring系列之(二)Spring基于XML的IOC实例

Spring系列之(二)Spring基于XML的IOC实例

时间:2024-02-27 20:57:47浏览次数:15  
标签:XML ApplicationContext 配置文件 Spring com import IOC itheima

Spring基于XML的IOC实例

将改进后的工厂模式通过Spring来实现,解析配置文件、创建仓库,将对象存入仓库的过程都由Spring来做,我们只需要配置好配置文件,获取仓库中的对象即可

1. 在pom中引入Spring环境

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.itheima</groupId>
    <artifactId>day01_eesy_02spring</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.11.RELEASE</version>
        </dependency>
    </dependencies>

</project>

2. 业务层和持久层结构及代码

结构
在这里插入图片描述
业务层
在这里插入图片描述
持久层
在这里插入图片描述

3. 创建并配置配置文件

在这里插入图片描述
beans.xml中约束的获取
访问网址:Spring Framework 中文文档
在这里插入图片描述

4. 表现层测试

package com.itheima.ui;

import com.itheima.dao.IUserDao;
import com.itheima.service.IUserService;
import com.itheima.service.impl.IUserServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Client {

    public static void main(String[] args) {
        //拿到容器
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
        //从容器中获取指定的Bean,下面的两种方式均可
        IUserDao iUserDao =  (IUserDao) applicationContext.getBean("IUserDao");
        IUserService iUserService = applicationContext.getBean("IUserService", IUserService.class);

        System.out.println(iUserDao);
        System.out.println(iUserService);
    }
}

在这里插入图片描述

5. ApplicationContext的三个常用实现类

在上述的测试中,使用的是ClassPathXmlApplicationContext这个实现类,此处实际上是可以使用三个实现类的
在这里插入图片描述

  1. ClassPathXmlApplicationContext
    加载类路径下的配置文件
  2. FileSystemXmlApplicationContext
    加载磁盘任意路径下的配置文件(必须有访问权限)
  3. AnnotationConfigApplicationContext
    用于读取注解创建容器

6. ApplicationContext和BeanFactory两个接口

  1. ApplicationContext 单例对象适用,更常用
    构建核心容器时,创建对象采取的策略是立即加载的方式,只要一读取完配置文件马上就创建配置文件中的配置的对象。
  2. BeanFactory 多例对象适用
    构建核心容器时,创建对象采取的策略是延迟加载的方式,什么时候根据id获取对象,什么时候才真正的创建对象。

标签:XML,ApplicationContext,配置文件,Spring,com,import,IOC,itheima
From: https://www.cnblogs.com/wzzzj/p/18038222

相关文章

  • Spring系列之(一)Spring概述
    Spring概述1.程序的耦合耦合:程序间的依赖关系解耦:降低程序间的依赖关系分类类之间的依赖方法之间的依赖2.类之间的依赖问题的实例2.1JDBC操作数据库存在的耦合问题首先正常编写一个jdbc查询操作的类packagecom.itheima.jdbc;importjava.sql.*;publicclass......
  • spring boot 中使用MybatisPlus的自动填充createTime和updateTime
    首先需要在实体类的字段上加上注解,并且将类型更改为LocalDateTime@TableField(fill=FieldFill.INSERT)@JsonInclude(value=JsonInclude.Include.NON_NULL)@JsonFormat(pattern="yyyy-MM-ddHH:mm:ss")privateLocalDateTimecreateTime;@TableFie......
  • springboot学习过程中的特殊错误
     这是我在学习使用springboot过程中遇到的一个小问题,询问了gpt但是并没有解决我的报错,在网上浏览信息后最终知道了是哪里出了问题 就如这个好哥哥说的一样,mybatis自带的方法不会出现问题,所以问题出在了实体类定义上面,加了@Tableld的注解就解决了问题。......
  • 简单看下最近的Spring Secrurity、Spring漏洞(CVE-2024-22234、CVE-2024-22243)
    最近的这两个cve我看国内很多情报将其评为高危,所以想着去看看原理,看完发现都比较简单,利用要求的场景也相对有限(特别是第一个),所以就随便看下就行了SpringSecurity用户认证绕过(CVE-2024-22234)先看下官网的公告(https://spring.io/security/cve-2024-22234)InSpringSecurit......
  • spring重点后置处理器
    1.DefaultListableBeanFactory的作用:默认实现了ListableBeanFactory和BeanDefinitionRegistry接口,基于beandefinition对象,是一个成熟的beanfactroy。最典型的应用是:在访问bean前,先注册所有的definition(可能从beandefinition配置文件中)。使用预先建立的bean定义元数......
  • springboot 统一处理请求非法参数
    通过拦截器和过滤器实现,话不多说上代码。1、重写HttpServletRequestWrapper读取body里面的内容。publicclassRequestWrapperextendsHttpServletRequestWrapper{privatefinalStringbody;publicRequestWrapper(HttpServletRequestrequest){super......
  • 如何创建自己的Spring Boot Starter并为其编写单元测试
    当我们想要封装一些自定义功能给别人使用的时候,创建SpringBootStarter的形式是最好的实现方式。如果您还不会构建自己的SpringBootStarter的话,本文将带你一起创建一个自己的SpringBootStarter。快速入门创建一个新的Maven项目。第三方封装的命名格式是xxx-spring-boo......
  • springboot2.6开始禁止循环依赖了
    参考文章: https://mp.weixin.qq.com/s?__biz=MzI0MTUwOTgyOQ==&mid=2247497189&idx=1&sn=0f03cdafad9bacef66c64a490b85ff23&scene=21#wechat_redirect使用了SpringBoot2.6及以上版本的,如果要允许循环依赖,可以作如下设置:方案二:允许循环引用此方案更像是绕过问题而非解决问题......
  • 解析Spring中的循环依赖问题:初探三级缓存
    什么是循环依赖?这个情况很简单,即A对象依赖B对象,同时B对象也依赖A对象,让我们来简单看一下。//A依赖了BclassA{publicBb;}//B依赖了AclassB{publicAa;}这种循环依赖可能会引发问题吗?在没有考虑Spring框架的情况下,循环依赖并不会带来问题,因为对象之间相互依赖......
  • pom.xml详解
    pom.xml是Maven项目的核心配置文件,用于描述项目的基本信息、依赖关系、构建配置等。下面是对pom.xml文件中常见元素的详解:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocat......