Spring的创建和使用

简介: Spring的创建和使用

🔎Spring的创建

创建Maven项目


引入Spring依赖


添加如下代码至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>

如果Jar包下载失败

可以参考这篇文章

添加启动类


🔎Spring的使用


Spring 是包含众多工具方法的IOC容器

Spring 作为一个容器. 最基本的功能为

  • 将对象存入到容器
  • 从容器中取出对象

在 Java 中, 可以将对象称为 Bean

存储Bean


存储 Bean 可以分为2个步骤

  • 创建 Bean
  • 将 Bean 存储至 Spring

创建 Bean🍂


public class User {
    public String sayHi() {
        return "hi!";
    }
}

将 Bean 存储至 Spring🍂


存储之前, 需要在 resources 下创建xml文件用于声明Spring(指引 Spring 的后续操作)

复制如下代码至xml文件中

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

将 Bean 存储至 Spring

<bean id="user" class="test.User"></bean>

注意🍭

<bean id="" class=""></bean>

  • id
  • id 是对 Bean 的编号, 此处的 id 不允许重复
  • 通常情况下, 存储 Bean 是为了能够将其获取, 而获取 Bean 依赖其对应的 id(编号)
  • class
  • class 是指 Bean 的类型, 如果 Bean 存储在某一包(Package)下, 需要在前面添加包的包名, 用.分隔
  • 例如 User 存储在 test 包下, 其 class="test.User"
  • 不省略 id 和 class
  • 无论 class 是否相同, 只要 id 不同便不会报错(通过 Id 获取 Bean)
  • 只要 class 相同, 无论 id 是否相同都会报错(通过 类型 获取 Bean)
  • 省略 class 不省略 id 运行时会报错
  • 省略 id 不省略 class
  • 只有一个该类型时运行不会报错(类型不同)
  • 有多个该类型时运行会报错(类型相同)
  • 此处的类型包含包名

对于省略 id 不省略 class 的解释🌰

类型(包名 + 类型)不同, 其运行时不会报错

包名 test1, test2

类型 User

<bean class="test1.User"></bean>

<bean class="test2.User"></bean>

类型(包名 + 类型)相同, 运行时会报错

包名 test

类型 User

<bean class="test.User"></bean>

<bean class="test.User"></bean>

获取Bean


获取 Bean 可以分为2个步骤

  • 获取 Spring
  • 从 Spring 中读取 Bean
  • 使用 Bean(非必须)

获取 Spring🍂

  • 通过ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");获取
  • 通过BeanFactory context = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));获取

注意🍭

configLocation 需要对应 resources 下的 xml 文件

对比ApplicationContext与BeanFactory


相同点🍂

  1. 都可以获取 Spring
  2. 都是 Spring 的顶级接口(包含众多的方法)

ApplicationContext

BeanFactory

不同点🍂

  1. 继承关系
    ApplicationContext 属于 BeanFactory 的子类
  2. 功能
    BeanFactory 只有最基础的访问 Bean 的能力
    ApplicationContext 除了拥有 BeanFactory 的功能之外, 还包含更多的功能
    例如国际化🌐支持, 资源访问, 事件传播…
  3. 性能
    ApplicationContext 的加载方式是将 Bean 一次性加载(饿汉模式)
    BeanFactory 的加载方式是当需要某个 Bean 时再去加载所需的 Bean(懒汉模式)

继承关系

从 Spring 中读取 Bean🍂

  • 根据 Id 获取 BeanUser user = (User) context.getBean("user");
  • 需要将获取结果进行强转
  • user(Id)
  • 根据 类型 获取 BeanUser user = context.getBean(test.User.class);
  • test.user(test 包名 / user 类型)
  • 根据 Id + 类型 获取 Bean
    User user = context.getBean("user", test.User.class);

建议使用 Id + 类型 的方式获取 Bean

对于根据 Id 获取 Bean

当 getBean 的结果为其他引用类型时, (User)其他引用类型 → Error

对于根据 类型 获取 Bean

当 xml 文件中注入多个相同的类型时(不考虑包的情况) → Error

🔎总结


  1. 操作容器之前, 需要先有容器(创建 Spring 项目)
  2. 容器的基本功能 — 存对象(存储 Bean)
  • 创建 Bean
  • 将 Bean 存储至 Spring
  1. 容器的基本功能 — 取对象(获取 Bean)
  • 获取 Spring
  • 从 Spring 中读取 Bean

相关文章
|
8天前
|
人工智能 运维 安全
|
6天前
|
人工智能 异构计算
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
敬请锁定《C位面对面》,洞察通用计算如何在AI时代持续赋能企业创新,助力业务发展!
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
B站开源IndexTTS2,用极致表现力颠覆听觉体验
在语音合成技术不断演进的背景下,早期版本的IndexTTS虽然在多场景应用中展现出良好的表现,但在情感表达的细腻度与时长控制的精准性方面仍存在提升空间。为了解决这些问题,并进一步推动零样本语音合成在实际场景中的落地能力,B站语音团队对模型架构与训练策略进行了深度优化,推出了全新一代语音合成模型——IndexTTS2 。
641 22
|
7天前
|
人工智能 测试技术 API
智能体(AI Agent)搭建全攻略:从概念到实践的终极指南
在人工智能浪潮中,智能体(AI Agent)正成为变革性技术。它们具备自主决策、环境感知、任务执行等能力,广泛应用于日常任务与商业流程。本文详解智能体概念、架构及七步搭建指南,助你打造专属智能体,迎接智能自动化新时代。
|
13天前
|
人工智能 JavaScript 测试技术
Qwen3-Coder入门教程|10分钟搞定安装配置
Qwen3-Coder 挑战赛简介:无论你是编程小白还是办公达人,都能通过本教程快速上手 Qwen-Code CLI,利用 AI 轻松实现代码编写、文档处理等任务。内容涵盖 API 配置、CLI 安装及多种实用案例,助你提升效率,体验智能编码的乐趣。
1044 110
人工智能 数据可视化 数据挖掘
235 0