当前位置: 首页 > article >正文

【Spring】Spring的简单创建和使用

前言

Spring Bean 可以通过两种主要方式定义:基于 XML 配置文件和基于注解。今天我们讲解基于 XML 配置文件‌来定义 Bean ,在 XML 配置文件中,使用 <bean> 元素定义 Bean,描述 Bean 的创建、配置和依赖关系,并存储与使用。


目录

1. Spring项目的创建

1.1 创建一个Maven项目

1.2 添加Spring框架的支持(添加pom.xml文件)

1.3 添加Sping的配置文件

2. Spring的使用

2.1 存储Bean对象

2.2 获取Bean对象

2.3 使用Bean对象

2.4 ApplicationContext与BeanFactory的区别


1. Spring项目的创建

1.1 创建一个Maven项目

第一步

第二步

第三步


1.2 添加Spring框架的支持(添加pom.xml文件)

创建好 Spring 项目后,项目里面会默认出现一个 pom.xml 文件,我们需要把 Spring 的框架支持添加进去,也就是将以下代码复制到 pom.xml

注意,在 pom.xml 添加框架支持是为了简化项目依赖管理和提高开发效率

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


1.3 添加Sping的配置文件

添加 Spring 的配置文件,我们通常把这个配置文件命名为 spring-config.xml 并且把该文件创建到 resources 文件夹中。后面,我们将也是 Bean 对象注册到该配置文件里面。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>


2. Spring的使用

2.1 存储Bean对象

  1. 为了存储 Bean 对象首先我们得要有一个 Bean 对象
  2. 将创建好的 Bean 对象存储到 Spring 容器当中

首先,我们在 java 底下创建一个包,并在包里面创建一个 Student 类,此时的 Student 类就是一个我们创建好的 Bean 对象。:

package com.study.spring;

public class Student {
    public void hello() {
        System.out.println("welcome use Student!");
    }
}

其次,在 java 底下创建一个启动类 App,如下如所示:

public class App {
    public static void main(String[] args) {

    }
}

最后,我们将上面创建的 Bean 对象存储到 Spring 容器当中,也就是我们创建的 spring-config.xml(spring配置文件) 之中。

我们打开 spring-config.xml 并通过 <bean></bean> 标签来存储。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
       <bean  id="student" class="com.study.spring.Student"></bean>
</beans>

其中 id 为我们后面获取 Bean 对象所设置的一个名称(任意起名),class 为这个 Bean 对象所在的位置。


2.2 获取Bean对象

  1. 为了获取到 Bean 对象,我们就得获取到 Spring 的上下文,因为我们将 Bean 对象交给 Spring 管理了,可通过 ApplicationContext BeanFactory 来获取。
  2. 可用过 <bean></bean> 标签中的 id 来获取到一个指定的 Bean 对象。

2.3 使用Bean对象

在启动类中,通过 ApplicationContext 来获取 Spring 上下文并使用。

import com.study.spring.Student;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        // 1.获取 Spring 的上下文对象
        ApplicationContext context = new
                ClassPathXmlApplicationContext("spring-config.xml");
        // 2.加载到 id 为 student 的 Bean 中
        Student student = (Student) context.getBean("student");
        // 3.运行 Student 类中 hello 方法
        student.hello();
    }
}

结果如下:

使用 ApplicationContext 为获取 Spring 上下文对象的方法。ClassPathXmlApplicationContext("spring-config.xml")为加载一个名为 spring-config.xmlSpring 配置文件。 


通过  BeanFactory 来获取 Spring 上下文

public class App {
    public static void main(String[] args) {
        // 1.获取 Spring 的上下文对象
        BeanFactory beanFactory = 
                new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        // 2.加载到 id 为 student 的 Bean 中
        Student student = (Student) beanFactory.getBean("student");
        // 3.运行 Student 类中 hello 方法
        student.hello();
    }
}

结果如下:


2.4 ApplicationContext与BeanFactory的区别

  • 从继承关系和功能方面:Spring 容器有两个接口即 BeanFactory 和 ApplicationContext。其中 BeanFactory 提供了基础的访问容器的功能,而 ApplicationContext 为 BeanFactory 的子类,它继承了 BeanFactory 的所有功能之外,还添加了对国际化的支持、资源访问、以及事件传播等等方面的支持。
  • 从性能来说:ApplicationContext 是一次性加载并初始化所有的 Bean 对象,而BeanFactory 是需要那个就加载那个,因此更轻量。

以上就是今天的博客内容,下期我们讲解更加简单的存储与使用 Bean 对象。

🥊作者:一只爱打拳的程序猿,Java领域新星创作者,CSDN、阿里云社区优质创作者

🤼文章收录于:Spring


http://www.kler.cn/a/381158.html

相关文章:

  • 前端下载文件的几种方式使用Blob下载文件
  • 计算机基础复习12.23
  • 《点点之歌》“意外”诞生记
  • C语言扫雷游戏教学(有图形界面)(提供源码+实验报告)(计时+排行榜+难度选择+登录注册+背景音乐)(涉及easyX库)
  • 重拾设计模式--外观模式
  • (2024.12)Ubuntu20.04安装openMVS<成功>.colmap<成功>和openMVG<失败>记录
  • 11.5日志
  • labview学习总结
  • Linux终端退出程序后,TCP地址仍被占用
  • 【前端】Fetch:数据请求
  • C++之数组和字符串
  • ffplay 实现视频流中音频的延迟
  • 手机ip地址怎么切换外省
  • 【大模型】海外生成式AI赛道的关键玩家:OpenAI、Anthropic之外还有谁?
  • 二、 问题发现(监控工具和方法)
  • 【Unity】Unity拖拽在Android设备有延迟和卡顿问题的解决
  • Qt 视口和窗口
  • 使用RestTemplate发送post请求,入参是多层嵌套的JSON
  • C++优选算法五 位运算
  • SEO
  • UE5相机系统初探(一)
  • 网关(Gateway)和DNS(Domain Name System)
  • 无人机声学侦测算法详解!
  • 构建基于 DCGM-Exporter, Node exporter,PROMETHEUS 和 GRAFANA 构建算力监控系统
  • 【新闻文本分类识别】Python+CNN卷积神经网络算法+深度学习+人工智能+机器学习+文本处理
  • 软考背诵笔记