【Java】Spring的创建和使用

简介: 【Java】Spring的创建和使用

Spring的创建和使用

Spring就是一个包含众多工具方法的IOC容器。既然是容器,那么就具备两个最主要的功能:

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

在Java语言当中对象也叫作Bean。

1. 创建Spring项目

  1. 创建一个普通maven项目
  1. 添加Spring框架支持(spring-context、spring-beans)
  2. 添加启动类

1.1 创建一个Maven项目

1.2 添加Spring框架支持

在项目的pom.xml中添加Spring的框架支持,配置如下:

<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>

从配置中可以看出,添加的框架有spring-context:spring 上下文还有spring-beans:管理对象的模块

如果配置失败的情况我们就要考虑是否使用国内源了。

那么如何配置国内源呢?




看图中圈起来的位置是否勾中,如果没有勾中。

打开目录看是否有后面名字为setting.xml的配置文件,如果没有就是没有配置国内源的。我们只需要将setting.xml文件复制到当前目录下,然后将后面的勾选,之后点击OK就配置好了。

注意的是需要配置这两个地方:

1.3 添加启动类

最后在创建好的项目java文件夹下创建一个启动类,包含main方法即可。

2. 存储Bean对象

存储Bean对象分为两步:

  1. 存储Bean对象之前,先得有Bean才行,因此要创建一个Bean
  1. 将创建的Bean注册到Spring当中

2.1 创建Bean

所谓的Bean就是Java语言的一个普通的对象,实现代码如下:

public class UserBean {
    public void sayHi(String name) {
        System.out.println("你好" + name);
    }
}

2.2 将Bean注册到容器中

在创建好的项目中添加Spring配置文件spring-config.xml将此文件放到resources的根目录下,如下图:

配置文件的内容:

<?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>

接下来将UserBean对象注册到Spring中就可以,具体操作是在中添加如下操作

<bean id="userBan" class="org.example.UserBean"></bean>

PS: id可以不等于class里面的类名,但是要尽量符合规范。

3. 获取并使用Bean对象

获取并使用Bean对象,分为3步:

  1. 使用Spring上下文对象,因为对象都交给了Spring管理,所以要从Spring当中获取,那么就应该先得到Spring上下文
  2. 通过Spring上下文,获取到某一个指定的Bean
  1. 使用Bean对象

3.1 创建Spring上下文

除了使用上面那个类,我们还可以使用BeanFactory来作为Spring的上下文

两个类的效果是一样的,ApplicationContext属于BeanFactory的子类,它们的区别如下:

  • 相同点:都可以从容器中获取Bean,都提供了getBean方法
  • 不同点:
  • 继承关系和功能方面来说:Spring容器有两个顶级的接口:BeanFactory和ApplicationContext。其中BeanFactory提供了基础的访问容器的能力,而ApplicationContext属于BeanFactory的子类,它除了继承BeanFactory的功
  • 能之外,还有独特的特性。还添加了对国际化支持、资源访问支持、以及事件传播等方面的支持
  • 从性能方面来说:ApplicationContext是一次性加载所
  • 有的Bean对象,而BeanFactory是需要那个加载那个,因此更加轻量
3.1.1 getBean方法的更多用法

getBean方法有很多种重载方法,我们也可以使用其他方法来获取Bean对象比如以下两种:

UserBean userBean = context.getBean(UserBean.class);

这种写法简单,但是容易出问题。当一个类型被注入到spring当中多次(多个)时候,就会报错,因为不清楚取出那个Bean

UserBean userBean1 = context.getBean("userBean", UserBean.class);

4. 总结

  1. 操作容器之前,先要有一个容器,所以要先得到容器
  2. 存对象
  1. 创建Bean(普通类)
  2. 将Bean注册到配置文件当中
  1. 取对象
  1. 得到Spring的上下文,并读取到Spring的配置文件
  1. 获取到某一个Bean对象
  2. 使用Bean对象

相关文章
|
6天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
14天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
36 1
Spring 框架:Java 开发者的春天
|
14天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
14天前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
32 2
|
18天前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
29 1
|
21天前
|
Java BI 调度
Java Spring的定时任务的配置和使用
遵循上述步骤,你就可以在Spring应用中轻松地配置和使用定时任务,满足各种定时处理需求。
107 1
|
22天前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
30天前
|
存储 Java API
如何使用 Java 记录简化 Spring Data 中的数据实体
如何使用 Java 记录简化 Spring Data 中的数据实体
34 9
|
2月前
|
人工智能 开发框架 Java
重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba
随着生成式 AI 的快速发展,基于 AI 开发框架构建 AI 应用的诉求迅速增长,涌现出了包括 LangChain、LlamaIndex 等开发框架,但大部分框架只提供了 Python 语言的实现。但这些开发框架对于国内习惯了 Spring 开发范式的 Java 开发者而言,并非十分友好和丝滑。因此,我们基于 Spring AI 发布并快速演进 Spring AI Alibaba,通过提供一种方便的 API 抽象,帮助 Java 开发者简化 AI 应用的开发。同时,提供了完整的开源配套,包括可观测、网关、消息队列、配置中心等。
1867 16
|
1月前
|
人工智能 缓存 Java
深入解析Spring AI框架:在Java应用中实现智能化交互的关键
【10月更文挑战第12天】Spring AI 是 Spring 框架家族的新成员,旨在满足 Java 应用程序对人工智能集成的需求。它支持自然语言处理、图像识别等多种 AI 技术,并提供与云服务(如 OpenAI、Azure Cognitive Services)及本地模型的无缝集成。通过简单的配置和编码,开发者可轻松实现 AI 功能,同时应对模型切换、数据安全及性能优化等挑战。