ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

实战Spring通过XML装配bean

2021-02-25 12:02:05  阅读:160  来源: 互联网

标签:XML Spring 配置 JavaConfig bean SgtPeppers


在装配bean的时候,还有一种可选方案。官方可能认为这种方式不好,因为非 java 代码配置,但是每个人的看法和喜好不同,也不是说不能选择的。

创建XML配置规范

在使用JavaConfig的时候,这意味着要创建一个带 有@Configuration注解的类,而在XML配置中,这意味着要创建一个XML文件,并且要以<beans>元素为根。

最为简单的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:context="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 
    http://www.springframework.org/schema/context/spring-context.xsd">
</beans>

这个基本的XML配置已经比同等功能的JavaConfig类复杂得多了。作为起步,在JavaConfig中所需要的只是@Configuration,但在使用XML时,需要在配置文件的顶部声明多个XML模式(XSD)文件,这些文件定义了配置Spring的XML元素。

当然在 idea 中,你只需要选择 file 然后新建,然后 如图:

他会创建一个最最最基础的 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>

为了做测试,让我们重新在走一遍CD样例,这次使用XML配置,而不是前几篇文章 使用JavaConfig和自动化装配。

声明一个简单的<bean>

要在基于XML的Spring配置中声明一个bean,我们要使用spring-beans模式中的另外一个元素:<bean>。

<bean>元素类似于JavaConfig中的@Bean注解。我们可以按照如下的方式声明CompactDisc bean:

  <bean id="compactDisc" class="soundsystem.SgtPeppers" />

这是最最基本的 声明 bean 的方式,当然 id 可有可无,创建这个bean的类通过class属性来指定的,并且要使用绝对路径,全路径。

如果不加 id

没有明确给定ID,所以这个bean将会根据全类名来进行命名。

在本例中,bean的ID将会是“soundsystem.SgtPeppers#0”。其中,“#0”是一个计数的形式(计数就是为了区分),用来区分相同类型的其他bean。

如果你声明了另外一个SgtPeppers(另外一个的前提是不在同一个包下),并且没有明确进行标识,那么它自动得到 的ID将会是“soundsystem.SgtPeppers#1”。

不过,通常来讲更好的办法是借助id属性,为每个bean设置一个你自己选择的名字,以便于日后引用可以直接使用。

声明简单bean的一些特征

  1. 无需负责创建SgtPeppers的实例,也就是初始化;

  2.  

 

 

标签:XML,Spring,配置,JavaConfig,bean,SgtPeppers
来源: https://blog.csdn.net/Soinice/article/details/114066236

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有