如何创建一个Spring项目并使用

简介: 如何创建一个Spring项目并使用

一. 创建 Spring 项目



  1. 如何创建一个Spring项目并使用
  2. 添加 Spring 框架(Spring-context、Spring-beans)
  3. 添加启动类


1. 创建一个 Maven 项目

79631b047ccb4ef487c2956feaf19224.png

对于初学可以暂时不是用以上模板, 简单的创建一个 Maven 项目即可

4850ba1e1dc04da2a9b1b1f2c0920e49.png


最后点击 Finish 就简单的创建好了一个 Maven 项目


2. 添加 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>


上述添加的框架有 spring-context:spring 上下⽂, 以及spring-beans:管理对 象的模块

image.png


3. 添加启动类


创建一个启动类, 包含 main 方法即可

e9311d9c53394679be2d968fd8f36b87.png


完成上述三步以后, 则算简单完成了一个Spring项目的创建, 下面就可以简单的在该项目中进行存储 Bean 和 使用 Bean 了


二. Spring 项目中的 Bean 的存储



在 Spring 中, 最基本的就是 对 Bean 的创建和存储了


1. 创建 Bean 对象


想要存储到 Spring 容器, 需要创建一个 Bean 对象, 而所谓的 Bean对象其实就是一个普通的 Java 对象

ee9887c345dc4b61bc2746dfa15f158e.png


2. 将 Bean 对象存储到 容器中


在添加之前到容器中之前, 需要在 resources 根目录下创建一个配置文件 spring-config.xml(该名称可以自己取)

image.png


该配置文件下的内容时固定的, 可以理解为 pom.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>


f324f3da767a4e4eb486efba2b830751.png


然后, 就可以存取 Bean 对象了. 将 Student 对象注册到 Spring 中

image.png


三. Bean 对象的获取和使用



获取 Bean 对象大致分为以下几步

1. 获取 Spring 上下文对象

2. 通过 Spring 上下文获取指定 Bean 对象

3. 使用 Bean 对象


1. 获取 Spring 上下文对象


第一种方式


ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");


通过引入的 spring - context 提供的上下文对象

4f41b593f6f04d078783e59c6e62e9e5.png


 第二种方式


ClassPathXmlApplicationContext context1 = new ClassPathXmlApplicationContext("spring-config.xnl");


ClassPathXmlApplicationContext 是 BeanFactory 的子类

d0aa649e2a204581933380ab5797d12d.png


上述两种方式, 都是通过去读取配置文件获取 spring 上下文对象


那么, ApplicationCont 和 BeanFactory 有什么区别呢?

  • ApplicationContext 是 BeanFactory 的一个子类
  • BeanFactory 提供了基础的访问容器的能力, 而 ApplicationContext 除了继承了 BeanFactory 的功能之外, 还拥有独特的特性, 如资源访问支持, 国际化支持, 事件传播等
  • 性能方面, ApplicationContext 是一次性加载并初始化所有的 Bean 对象, 属于单例模式, 而 BeanFactory 是需要那个才去加载那个, 属于懒加载, 因此更加轻量


2. 通过 Spring 上下文获取指定 Bean 对象


第一种


f4f10a965a5c4d168644a0310c9543cb.png


可以看到, getBean提供了两种方法, 对于第一种, 传入的是一个String s(为配置文件中所需的 Bean标签里的 id 名称),  Class aClass (Bean对象类名)

// 获取指定 Bean 对象
Student student = context.getBean("student", Student.class);


第二种


只需要提供 Bean 对象 id 即可获取, 获取的是一个 Object 对象, 需要强转为所需的类 类型

24904100c1e24552bba8365acfd7c23e.png

// 获取指定 Bean 对象
Student student2 = (Student) context.getBean("student");


那么第二种和第三种有什么区别呢?


当一个对象被重复注入到 Spring 中时, 如果只根据 类 类型来获取 Bean 对象, 会找不到所需要的 Bean对象而报错

b39604a0e38a4e8c9c7867fec8812554.png


运行结果

91a0824412974ec3a2a6d39a4cdf535c.png


当同一个对象注入两次以后, 尝试去获取 Bean 对象, 无法获取唯一的 Bean 从而找不到 Bean对象, 此时可以通过加上 id 或只通过 id 来获取 Bean对象, 因此在后面的使用中, 更推荐使用第一种 id 和类对象的方式来获取 Bean 对象


需要注意的是, 获取 Bean 对象时, 提供的 Id 要和 spring-config.xml 文件中存的 Bean 对象的 Id一致


3. 使用 Bean 对象


可以成功的调用之前创建的 Bean 对象 Student 中的 fun 方法


6d6d43dca9024377b63b7c7c90eac2e8.png


相关文章
WXM
|
25天前
|
Java 应用服务中间件 Maven
|
22天前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
5天前
|
XML JSON Java
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
本文介绍了如何使用IntelliJ IDEA和Maven搭建一个整合了Struts2、Spring4、Hibernate4的J2EE项目,并配置了项目目录结构、web.xml、welcome.jsp以及多个JSP页面,用于刷新和学习传统的SSH框架。
14 0
使用IDEA+Maven搭建整合一个Struts2+Spring4+Hibernate4项目,混合使用传统Xml与@注解,返回JSP视图或JSON数据,快来给你的SSH老项目翻新一下吧
|
5天前
|
前端开发 JavaScript Java
spring boot+vue前后端项目的分离(我的第一个前后端分离项目)
该博客文章介绍了作者构建的第一个前后端分离项目,使用Spring Boot和Vue技术栈,详细说明了前端Vue项目的搭建、后端Spring Boot项目的构建过程,包括依赖配置、数据库连接、服务层、数据访问层以及解决跨域问题的配置,并展示了项目的测试结果。
spring boot+vue前后端项目的分离(我的第一个前后端分离项目)
|
15天前
|
IDE Java Shell
如何快速搭建一个 Spring Boot 项目?
本指南介绍如何通过Spring Initializr创建一个基本的Spring Boot Web项目。首先访问`start.spring.io`,选择Maven项目、Java语言、Spring Boot版本3.1.0、Java 17,并勾选Spring Web依赖。点击“Generate”下载项目模板。解压后,IDE打开项目并修改`DemoApplication.java`,添加REST控制器以实现一个简单的“Hello World!”服务。通过`@RestController`和`@GetMapping`注解定义Web端点,使用`@RequestParam`获取URL参数。
|
19天前
|
IDE Java Shell
如何快速搭建一个 Spring Boot 项目?
Spring Boot 可以用最少的配置来快速创建一个独立的、生产级的 Spring 应用程序。 本文介绍如何快速搭建一个 Spring Boot「Hello World!」项目。
|
23天前
|
Java Spring
idea新建spring boot 项目右键无package及java类的选项
idea新建spring boot 项目右键无package及java类的选项
34 5
|
23天前
|
Java 数据库连接 Spring
搭建 spring boot + mybatis plus 项目框架并进行调试
搭建 spring boot + mybatis plus 项目框架并进行调试
50 4
|
4天前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
15天前
|
设计模式 算法 Java
Spring Boot 项目怎么使用策略模式?
策略模式是一种设计模式,它允许在运行时选择不同的算法或行为。此模式通过定义一系列算法并将它们封装在独立的类中实现,这些类可以互相替换。这样可以根据不同情况动态选择最适合的算法。 在Spring框架中,可以通过依赖注入来实现策略模式。首先定义一个抽象策略类(接口或抽象类),然后创建具体策略类实现不同的算法。具体策略类通过`@Service`注解并在名称中指定特定的策略(如加法、减法等)。在上下文类(如Service类)中,通过`@Resource`注入策略对象的Map集合,根据需要选择并执行相应的策略。