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

news/2024/12/23 19:53:10 标签: spring, java

前言

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 对象注册到该配置文件里面。

java"><?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 对象。:

java">package com.study.spring;

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

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

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

    }
}

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

我们打开 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 上下文并使用。

java">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 上下文

java">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.niftyadmin.cn/n/5739821.html

相关文章

基于VsCode platformio的stm32开发环境搭建

背景 VsCode作为当下流行的编辑器&#xff0c;且不单单是一个编辑器里面集成了很多插件&#xff0c;使用这些插件可以完成很多功能。 STM32开发环境除了KEIL与IAR&#xff0c;其实还有很多其他的开方方式&#xff0c;ST官方提供了很多的开发软件&#xff0c;基于Eclipse也可以…

Docker LLama-Factory vLLM 快速部署Meta-Llama-3.1-70B-Instruct

Dockerfile: FROM kevinchina/deeplearning:llamafactory20241027# 设置工作目录 WORKDIR /app# 暴露端口 EXPOSE 8000 EXPOSE 7860# 使用 JSON 格式的 ENTRYPOINT,指定要执行的命令 ENTRYPOINT ["vllm", "serve", "/data/xiedong/LLM-Research/Me…

2024年10月第4个交易周收盘总结(10月收盘)

计划自己的交易&#xff0c;交易自己的计划! 跟随市场而情绪波动&#xff0c;最终一定会导向失败&#xff01;连续、平稳、冷静地惯彻交易计划&#xff0c;比什么都重要&#xff01; 交易本身是极其简单和清楚的&#xff0c;让事情变复杂的原因不是行情走势和交易本身&#x…

深入解析:人工智能与机器学习

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 深入解析&#xff1a;人工智能与机器学习 深入解析&#xff1a;人工智能与机器学习 深入解析&#xff1a;人工智能与机器学习 人…

docker pull 拉取镜像失败,使用Docker离线包

1、登录并注册Github&#xff0c;然后在Github中搜索并打开“wukongdaily/DockerTarBuilder” 项目&#xff0c;在该项目主页点击“Fork”。 然后点 “Create Fork”&#xff0c;将项目创建到自己的Github主页。 2、接着在自己创建过来的这个项目中点击“Actions” 3、然后…

轻松搞定项目管理!用对在线项目管理工具助你生产力翻倍!

一、引言 在线项目管理是指借助互联网平台和相关软件工具&#xff0c;对项目从启动到结束的全过程进行规划、组织、协调、控制和监督的一种管理方式。它打破了传统项目管理在时间和空间上的限制&#xff0c;使得项目团队成员无论身处何地&#xff0c;都能实时同步项目信息、协…

springboot使用kafka推送数据到服务端,带认证

遇到的问题 在实际开发过程中&#xff0c;因为推送数据需要用到kafka&#xff0c;为了比较方便与后续其他需求需要使用kafka&#xff0c;所以开发的过程中是设想能写一个工具类&#xff0c;方便后续的使用&#xff0c;但是&#xff0c;测试不带认证的kafka服务端的时候&#x…

CAN总线学习笔记(1、CAN总线定义)

CAN总线学习笔记&#xff08;1、CAN总线定义&#xff09; 江协科技CAN总线入门教程视频学习笔记 CAN特性 两根通信线&#xff08;CAN_H\CAN_L&#xff09;,两根线&#xff0c;无需工地 差分信号&#xff0c;抗干扰能力强 高速CAN&#xff08;ISO11898&#xff09;&#xff…