[JAVAee]Spring项目的创建与基本使用

2023-11-15

目录

Spring项目的创建

Spring中Bean对象的存储与获取

存储Bean对象

获取并使用Bean对象

 getBean方法的重载


 本文章介绍了Spring项目创建与使用的过程与一定的注意事项.

Spring项目的创建

首先在IDEA中,新建一个Maven

第二步,在pom.xml中写入spring的依赖.

pom.xml是maven项目的配置文件.加入了spring的依赖才可以使用spring,相当于将把spring下载到我们项目中去使用.

将下面代码复制粘贴到pom.xml中

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>

    </dependencies>

 效果是这样的:

如果是第一次配置,其中的依赖名是红色的.这代表着依赖所需的jar包还没有下载好.可以等待一会.

如果下载的过程发生了报错,一直都还是红色的.可能是网络的原因,就可以去设置中更改maven项目中的配置,使其更改成为国内源能够更好的帮助我们下载jar包.

[其他]IDEA中Maven项目配置国内源_HY_PIGIE的博客-CSDN博客

配置spring的xml文件 

在java目录下的resources文件下创建出一个xml,命名可以随意.

并将下面的配置代码拷贝到刚刚创建的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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

如图

 以上,我们就创建出了一个基本的spring项目.

下面将介绍关于bean对象的基本存储与获取

Spring中Bean对象的存储与获取

存储Bean对象

存储Bean对象,大致分成两步:

  1. 创建出一个类
  2. 将创建出的类注册到Spring容器当中.

 在java下创建出一个类,也可以放到包中

并把此类注册到spring当中(交给spring管理,赋予其创建销毁对象的权限),具体是在我们先前创建的spring.xml文件中配置

在xml文件下的beans标签中,创建出bean标签.

id表示由此类创建出的bean对象的id,便于我们根据id来获取.

class表示为类所在的路径.以main底下的java为根路径,描述类的路径.

如果User类放到了一个包中,那么class则是:

这样就成功的把类注册到spring当中,当需要调用的时候spring会自动的帮我们创建bean对象.

获取并使用Bean对象

大致分为三个步骤:

  1. 获取spring上下文对象
  2. 从spring上下文对象获取bean对象
  3. 使用bean对象

获取spring上下文对象的方式有两种:

通过ApplicationContext获取

或是BeanFactory来获取.

他们的效果是一样的,但spring官方推荐使用ApplicationContext.

调用上下文对象根据id获取相应的bean对象

public static void main(String[] args) {
        //获取上下文方法一
        BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring.xml"));
        User user1 = (User)beanFactory.getBean("user");//使用getBean获取bean对象
        //获取上下文方法二
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        User user2 = (User)context.getBean("user");
    }

 getBean方法的重载

使用getBean方法来获取bean对象有三种使用方式:

User user1 = (User)context.getBean("user");//通过id获取
User user2 = context.getBean(User.class);//通过类获取
User user3 = context.getBean("user",User.class);//通过id+类的方式获取

如果是同一个类的不同bean对象要标注成不同的id噢,id是唯一的.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[JAVAee]Spring项目的创建与基本使用 的相关文章

  • spring webflow,评估表达式在转换中被忽略

    我有一个流定义为流
  • Android 自定义视图不能以正确的方式处理透明度/alpha

    我正在绘制自定义视图 在此视图中 我使用两个不同的绘画和路径对象在画布上绘画 我基本上是在绘制两个重叠的形状 添加 Alpha 后 视图中重叠的部分比图像的其余部分更暗 这是不希望的 但我不知道如何解决它 这是我的代码片段 用于展示我如何在
  • Java:使用 HttpURLConnection 的 HTTP PUT

    如何执行 HTTP PUT 我正在使用的类似乎认为它正在执行 PUT 但端点将其视为我执行了 GET 我做错了什么吗 URL url new URL https HttpURLConnection conn HttpURLConnectio
  • 如何在 JSP 中导入类?

    我是一个完全的JSP初学者 我正在尝试使用java util List在 JSP 页面中 我需要做什么才能使用除以下类之外的类java lang 使用以下导入语句进行导入java util List 顺便说一句 要导入多个类 请使用以下格式
  • Condition 接口中的 signalAll 与对象中的 notificationAll

    1 昨天我才问过这个问题条件与等待通知机制 https stackoverflow com questions 10395571 condition vs wait notify mechanism 2 我想编辑相同的内容并在我的问题中添加
  • 无法在 Spring Boot 测试中模拟 persistenceContext

    我正在使用带有 Mockito 框架的 spring boot 测试来测试我的应用程序 存储库类 EntityManager 之一作为参考 我的班级如下所示 Repository Transactional Slf4j public cla
  • 主线程如何在该线程之前运行?

    我有以下代码 public class Derived implements Runnable private int num public synchronized void setA int num try Thread sleep 1
  • 内存一致性 - Java 中的happens-before关系[重复]

    这个问题在这里已经有答案了 在阅读有关内存一致性错误的 Java 文档时 我发现与创建 发生 之前 关系的两个操作相关的点 当语句调用时Thread start 每个具有 与该语句发生之前的关系也有一个 与 new 执行的每个语句之间发生的
  • 在java中实现你自己的阻塞队列

    我知道这个问题之前已经被问过并回答过很多次了 但我只是无法根据互联网上找到的示例找出窍门 例如this http tutorials jenkov com java concurrency blocking queues html or t
  • Java:正则表达式排除空值

    在问题中here https stackoverflow com questions 51359056 java regexp for a separated group of digits 我得到了正则表达式来匹配 1 到 99 之间的一
  • Java 8 中函数式接口的使用

    这是来自的后续问题Java 8 中的 双冒号 运算符 https stackoverflow com questions 20001427 double colon operator in java 8其中 Java 允许您使用以下方式引用
  • 列表应该如何转换为具体的实现?

    假设我正在使用一个我不知道源代码的库 它有一个返回列表的方法 如下所示 public List
  • 计算日期之间的天数差异

    在我的代码中 日期之间的差异是错误的 因为它应该是 38 天而不是 8 天 我该如何修复 package random04diferencadata import java text ParseException import java t
  • 如何记录来自 Akka (Java) 的所有传入消息

    在 Scala 中 您可以使用 LoggingReceive 包装接收函数 如何通过 Java API 实现相同的目标 def receive LoggingReceive case x do something Scala API 有Lo
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • Android Studio 将音乐文件读取为文本文件,如何恢复它?

    gameAlert mp3是我的声音文件 运行应用程序时 它询问我该文件不与任何文件类型关联 请定义关联 我选择TextFile错误地 现在我的音乐文件被读取为文本文件 我如何将其转换回music file protected void o
  • Espresso 和 Proguard 的 Java.lang.NoClassDefFoundError

    我对 Espresso 不太有经验 但我终于成功地运行了它 我有一个应用程序需要通过 Proguard 缩小才能处于 56K 方法之下 该应用程序以 3 秒的动画开始 因此我需要等到该动画结束才能继续 这就是我尝试用该方法做的事情waitF
  • 解决错误javax.mail.AuthenticationFailedException

    我不熟悉java中发送邮件的这个功能 我在发送电子邮件重置密码时遇到错误 希望你能给我一个解决方案 下面是我的代码 public synchronized static boolean sendMailAdvance String emai
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • 在哪里存储 Java 的 .properties 文件?

    The Java教程 http download oracle com javase tutorial essential environment properties htmlon using Properties 讨论如何使用 Prop

随机推荐