关于Spring框架应用中Beans.xml配置文件的使用

2023-11-26

我正在学习Spring MVC。今天,试图了解如何实现 JDBC DAO,我在 Spring(Spring,而不是 Spring MVC)中找到了这个“Hello World”,并且我开始看到它(因为我认为要实现 DAO,我必须创建一个单独的 Spring执行数据访问的项目...)

http://www.tutorialspoint.com/spring/spring_hello_world_example.htm

好的,这是一个独立的应用程序,而不是 Web 应用程序,因此它没有 Web 应用程序结构(WEB-INF 文件夹、web.xml 文件和我的 Web 应用程序中的调度程序 servlet 配置文件)

在这个例子中我有一个Beans.xml配置文件,用于为不同的 bean 分配唯一的 ID,并控制具有不同值的对象的创建,而不影响任何 Spring 源文件...

例如在这个例子中我使用Beans.xml文件来传递“message”变量的“Hello World”消息值,这样我就可以打印这个值而不影响HelloWorld.java and 主应用程序.java files

<?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-3.0.xsd">

   <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
       <property name="message" value="Hello World!"/>
   </bean>

</beans>

所以我有一些问题想问你:

  1. 这个文件是配置我的文件吗豆工厂?我认为,除了传递文本值作为变量的值之外,我还可以注入一个 bean 作为另一个 bean 的依赖项。

    这样对吗?

  2. 在这个例子中,我可以不使用Beans.xml文件并使用来代替注释系统?


1) This Beans.xml(实际上你可以随意命名)是一个弹簧配置文件。它拥有一个配置元数据.

来自 Spring 官方文档:

5.2.1 配置元数据

如上图所示,Spring IoC 容器消耗 配置元数据的形式;该配置元数据代表 作为应用程序开发人员,您如何告诉 Spring 容器 实例化、配置和组装应用程序中的对象。

配置元数据传统上以简单直观的 XML 格式提供,但这不是唯一允许的配置元数据形式(参见第二个问题的答案)

是的,你是对的:你可以注入另一个 bean 作为参考。

来自 Spring 官方文档:

5.3 Bean概述

Spring IoC 容器管理一个或多个 bean。这些豆子是 使用您提供给的配置元数据创建 例如,XML 定义形式的容器。

在容器本身内,这些 bean 定义表示为 BeanDefinition 对象,其中包含(以及其他信息) 以下元数据:

  • 包限定的类名:通常是所定义的 bean 的实际实现类。

  • Bean 行为配置元素,说明 Bean 在容器中的行为方式(范围、生命周期回调等) 向前)。

  • 对其他 Bean 的引用bean 完成其工作所需的;这些参考文献也称为合作者 or 依赖关系.

  • 在新创建的对象中设置的其他配置设置,例如,在管理 Bean 的 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="exampleBean" class="examples.ExampleBean">
        <!-- setter injection using the nested <ref/> element -->
        <property name="beanOne">
            <ref bean="anotherExampleBean"/>
        </property>

        <!-- setter injection using the neater 'ref' attribute -->
        <property name="beanTwo" ref="yetAnotherBean"/>
        <property name="integerProperty" value="1"/>
    </bean>

    <bean id="anotherExampleBean" class="examples.AnotherBean"/>
    <bean id="yetAnotherBean" class="examples.YetAnotherBean"/>

</beans>

2)来自 Spring 官方文档:

5.2.1 配置元数据

...

基于 XML 的元数据并不是唯一允许的配置形式 元数据。 Spring IoC 容器本身与 实际写入此配置元数据的格式。

有关在 Spring 中使用其他形式的元数据的信息 容器,参见:

  • 基于注释的配置: Spring 2.5引入了对基于注解的配置的支持 元数据。

  • 基于Java的配置: 从Spring 3.0开始,Spring提供了很多功能 JavaConfig 项目成为核心 Spring 框架的一部分。因此你 可以使用 Java 定义应用程序类外部的 beans 而不是 XML 文件。要使用这些新功能,请参阅@Configuration, @Bean, @Import and @DependsOn注释。

另请阅读以下内容:
没有 XML 的 Spring:Spring 注解与 Spring XML 文件的基础知识

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

关于Spring框架应用中Beans.xml配置文件的使用 的相关文章

随机推荐

  • POST 请求在 Postman 中有效,但在 Python 中无效

    当我在 Postman 中发出此 POST 请求时 我会获取数据 当我在 Python 2 7 中 使用 Jupyter Notebook 执行此操作时 出现错误 无法解码任何 JSON 对象 我做错了什么以及如何让它发挥作用 import
  • LINQ - 按值区分?

    Code news from New myNew in new News select myNew Distinct ToList 但这个 Distinct 适用于具有相同值的 对象 我需要在我的列表中添加一个myNew每个月 所以一个用于
  • 如何在@scheduled spring boot中的fixedDelay和initialDelay中给出分钟?

    我是春季调度程序的新手 我读了很多关于 schedule 的文章 但在每个例子中 他们都给出了以秒和毫秒为单位的时间 问题陈述 根据我的要求 在我的程序启动后 我的调度程序将在 15 分钟后启动 初始延迟 然后每隔 5 分钟执行一次任务 固
  • Twitter Bootstrap轮播:获取滑动方向

    如何判断轮播是向左滑动还是向右滑动 我查看了滑动事件和滑动事件的文档 但都没有提供有关滑动方向的任何相关信息 我还检查了传递给滑动事件的事件处理程序的事件对象 但我似乎也找不到任何有用的线索 任何帮助 将不胜感激 从 3 0 0 rc1 开
  • 使用 React,findDOMNode 在 StrictMode 中已弃用,在使用 React-transition-group 时会抛出警告

    我正在使用包react transition group 我尝试在CSSTransition组件上使用nodeRef道具 并在我的组件上添加了一个包装器 但我仍然收到有关findDOMNode的警告 这是代码
  • 在 Powershell 中,处理超过 1GB 的文件时收到“OutOfMemoryException”

    我在加载到数据仓库之前进行了一些文件清理 并遇到了文件大小调整问题 Get Content path C Workspace workfile myfile txt Raw replace Set Content C Workspace w
  • 带数字键盘的 Flutter TextField,需要逗号而不是句点(仅限 iOS)

    我想在 Flutter 中创建一个 TextField TextField 用于十进制数字 所以我设置keyboardType TextInputType numberWithOptions decimal true 现在我在 iOS 上得
  • cron 作业是否会终止最后一个 cron 执行?

    我有一个执行 PHP 脚本的 cron 作业 cron 设置为每分钟运行一次 这仅用于测试目的 它正在执行的 PHP 脚本旨在将用户上传到服务器的视频转换为 flash 格式 例如 flv 当通过命令行手动执行该脚本时 该脚本执行得很好 但
  • Symfony2 设置默认选择字段选择

    我通过以下方式创建一个表单 form this gt createFormBuilder breed gt add species entity array class gt BFPEduBundle Item property gt na
  • 如何在Android中自定义Toast?

    Android 中可以自定义Toast吗 就像我们是否可以在其中放置图像图标和放置按钮一样 您还可以使用常规 makeText 并处理获取视图 设置下一个图像以查看下一个 Toast toast Toast makeText context
  • Flutter - TabBar 中不同的浮动操作按钮

    我正在尝试在一个不同的浮动按钮TabBar扑腾中 但我会尝试很多选择 但我不知道如何做 抱歉 我添加更多详细信息 我想做一个应用程序TabBar 就像这个颤振示例一样 如果您看到这是一个tabBarDemo应用程序 我可以在选项卡之间进行更
  • 在 matlab 中传递冒号作为函数的参数

    我想知道是否可以使用冒号 作为函数的参数 像这样的东西 function y func x if x is a colon do this else do that end 还可以通过关键工作吗end作为函数的参数 也1 end 3 end
  • JPA 2 @SequenceGenerator @GenerateValue 产生唯一约束冲突

    问题概述 在看似随机的时候 我们会得到一个异常 postgresql 重复键违反了唯一约束 我确实认为我知道我们的问题是什么 但我不想在没有可重现的测试用例的情况下对代码进行更改 但由于我们无法在生产中随机生成之外的任何环境中重现它 所以我
  • 有没有办法在 .net core 中对 F# 项目进行单元测试?

    我正在尝试创建一个在 net core 中运行的 F 单元测试项目 dotnet new t xunittest 将为 C 创建一个 xunit 测试项目 但 F 不存在此类等效项 我尝试修改从上面显示的 C dotnet new 输出的
  • R:有效地从数组中删除单维

    我正在寻找一种快速方法来从 R 数组中删除冗余维度 类似于squeeze MATLAB 中的命令 现在我结合了melt 和cast 命令来自reshape2包 但应该有一种不太复杂的方法来做同样的事情 到目前为止我就是这样做的 requir
  • 将 stargazer 与通过在分割 data.frame 上 lapply-ing 创建的 lm 对象列表一起使用

    我正在尝试为一组回归创建一个观星表 其中我对数据的子集运行每个回归 我认为 做到这一点的自然方法是使用split要从我的数据创建 data frames 列表 请使用以下命令创建 lm 对象列表lapply在 data frames 列表上
  • 从流中读取 XML

    我正在使用 ASP NET 并从表单导入 XML 文件 现在我将其转换为Stream Stream inputStream XmlFileUploadControl PostedFile InputStream 因为我以后可能需要这个版本
  • OSX 上 JVM 的 Zombie http.proxyHost 设置

    我最近更改了网络 并从 OSX Leopard 上的系统偏好设置 网络面板中删除了所有 HTTP 代理设置 然而 现在每当我使用 Eclipse 时 Java HTTP 代理系统属性似乎都会 自动 设置为使用我现在已失效的 HTTP 代理
  • 如何在CSS中使图像悬停?

    我想在悬停时将图像从正常更改为更亮 我的代码 div class nkhome a href Home html img src Images btnhome png a div nkhome margin left 260px top 1
  • 关于Spring框架应用中Beans.xml配置文件的使用

    我正在学习Spring MVC 今天 试图了解如何实现 JDBC DAO 我在 Spring Spring 而不是 Spring MVC 中找到了这个 Hello World 并且我开始看到它 因为我认为要实现 DAO 我必须创建一个单独的