爪哇 2博客
 爪哇 2博客

弹簧 autowiring 按类型

弹簧 autowiring 按类型表示基于数据类型的自动装配。如果有任何bean属性数据类型与另一个其他bean完全匹配’的数据类型声明,然后spring将自动处理依赖项。如果多个bean属性匹配,那么它将引发致命异常。

下图将清楚说明:

弹簧按类型自动接线

例如:

我以自动接线为例“byType”在这里,它几乎与 通过setter方法进行依赖注入 在XML配置文件中进行了一些更改。

1.Country.java:

这是具有某些属性的简单pojo类,因此此处的国家具有Capital类的名称和对象。
在包下创建Country.java  组织 .arpit.java2blog将以下内容复制到Country.java中。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
组织 . Arpit . 爪哇 2blog;
 
上市 国家 {
 
     国家的名字;
 
    首都 首都奥比;
     上市 getCountryName() {
         返回 国家的名字;
    }
     上市 虚空 setCountryName( 国家的名字) {
         这个 .国家的名字 = 国家的名字;
    }
上市 首都 getCapitalObj() {
   返回 首都奥比;
}
上市 虚空 setCapitalObj(首都 首都奥比) {
   这个 .首都奥比 = 首都奥比;
}
 
}
 

2,Capital.java

这也是简单的pojo类,具有一个称为“capitalName”.
在包下创建Capital.java  组织 .arpit.java2blog.java.Areave 国家类包含此类的对象。将以下内容复制到Capital.java中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
组织 . Arpit . 爪哇 2blog;
 
上市 首都 {
 
       首字母大写;
 
       上市 getCapitalName() {
               返回 首字母大写;
       }
 
       上市 虚空 setCapitalName( 首字母大写) {
               这个 .首字母大写 = 首字母大写;
       }
}
 

3.BeanAutowiringByTypeMain.java

此类包含主要功能。在包下创建BeanAutowiringByTypeMain.java  组织 .arpit.java2blog将以下内容复制到BeanAutowiringByTypeMain.java中
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
组织 . Arpit . 爪哇 postsforlearning;
 
进口 组织 .弹簧框架.语境.ApplicationContext;
进口 组织 .弹簧框架.语境.支持.ClassPathXmlApplicationContext;
 
上市 BeanAutowiringByTypeMain{
 
     上市 静态的 虚空 主要 ([] args ) {
        ApplicationContext appContext = ClassPathXmlApplicationContext(“ ApplicationContext.xml”);
        国家 countryObj = (国家) appContext. getBean (“国家”);
         国家的名字=countryObj.getCountryName();
         首字母大写=countryObj.getCapitalObj().getCapitalName();
         系统 ..打印(首字母大写+“是”的首字母+国家的名字);
 
    }
}
 
您可以在这里注意到,我们使用ClassPathXmlApplicationContext在此处获取bean。获取bean的方法有多种。 你好世界的例子 我们已经使用XmlBeanFactory来获取bean。

4.ApplicationContext.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<? XML文件 ="1.0" 编码方式=“ UTF-8”?>
< 豆子 XML文件 ns ="http://www.springframework.org/schema/beans"
XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" XML文件 ns : 哎呀 ="http://www.springframework.org/schema/aop"
si :schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
< ID =“国家” =“ 组织 .arpit.java2blog.Country” 汽车线="按类型">
  <属性 名称 =“国家的名字” =“印度”/>
</>
< ID =“首都” =“ 组织 .arpit.java2blog.Capital”>
  <属性 名称 ="首字母大写" =“德里” />
</>
</ 豆子 >
 

在这里,我们使用了autowire属性并将其设置为“byType”因此,现在spring容器会将Country类中的Capital数据类型与XML配置文件中其他bean的类型进行匹配。所以在这里您可以看到我们有类为Capital的bean。

5,运行

当您在应用程序上运行时,将得到以下输出。

1
2
3
 
新德里 首都 印度
 

如果类的两个属性具有相同的数据类型怎么办:

如下更改ApplicationContext.xml:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<? XML文件 ="1.0" 编码方式=“ UTF-8”?>
< 豆子 XML文件 ns ="http://www.springframework.org/schema/beans"
XML文件 ns : si ="http://www.w3.org/2001/XMLSchema-instance" XML文件 ns : 哎呀 ="http://www.springframework.org/schema/aop"
si :schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 
< ID =“国家” =“ 组织 .arpit.java2blog.Country” 汽车线="按类型">
  <属性 名称 =“国家的名字” =“印度”/>
</>
< ID =“ 首都1” =“ 组织 .arpit.java2blog.Capital”>
  <属性 名称 ="首字母大写" =“ 新德里 1” />
</>
 
< ID =“ 首都2” =“ 组织 .arpit.java2blog.Capital”>
  <属性 名称 ="首字母大写" =“ 新德里 2” />
</>
</ 豆子 >
 

在上面的xml中,我们声明了两个大写的bean,现在将如何自动装配。
回答: 赢了 ’t.
当您运行上述程序时,它将为您提供以下异常:

它会给你下面的例外。


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 6月24日

    弹簧 或竞彩篮球分析 Boot中没有任何类型的合格Bean

    在这篇文章中,我们将看到一个例外:没有合格的bean类型。异常是最不期望的,但是在使用竞彩篮球分析时可能会遇到异常。或竞彩篮球分析 Boot。您是否收到以下异常:org.springframework.beans.factory.NoSuchBeanDefinitionException:没有任何合格的bean类型?如果是,让’看到了不同的原因。原因1:您忘记声明[…]

  • 6月17日

    弹簧 XML配置示例

    在本文中,我们将看到如何创建基于XML的竞彩篮球分析 hello world XML配置示例。这是创建竞彩篮球分析 XML配置示例的简单步骤。 1.创建一个简单的java maven项目。 2. Maven依赖项将spring和cglib maven依赖项放在pom.xml中。 [crayon-601d11c9ba4ea901719363 /]因此,您的pom.xml如下所示:[crayon-601d11c9ba4ef380279169 /] 3.创建Bean类[…]

  • 6月15日

    在春季将原型bean注入到Singleton 豆 中

    在这篇文章中,我们将看到如何在竞彩篮球分析中将原型​​bean作用域注入Singleton Instance中。这是春季面试中最常问到的问题之一。问题将原型bean注入到singleton 豆 时,原型bean的行为仍然像singleton 豆 。让’借助示例了解这一点。 1.创建一个[…]

  • 6月15日

    弹簧 中的循环依赖

    在这篇文章中,我们将讨论春季面试中最常问到的问题之一。如果竞彩篮球分析中存在循环依赖关系,会发生什么情况。问题如果竞彩篮球分析中存在循环依赖关系怎么办?例如:A类需要B类的实例,而B类需要A类的实例。’创建一个示例[…]

  • 9月12日

    弹簧 初始化方法和销毁方法示例

    在本文中,我们将介绍竞彩篮球分析的初始化方法和destroy-method。当实例化或销毁bean时,可能需要执行一些操作,因此可以在创建或销毁bean时使用init-method和destroy-method调用此方法。让我们借助一个简单的例子来理解它:…]

  • 7月27日

    Prefix “context” for element “上下文:组件扫描” or “上下文:注释配置”未绑定:竞彩篮球分析错误

    在竞彩篮球分析或竞彩篮球分析 MVC应用程序上工作时,可能会遇到以下错误消息。 组织 .xml.sax.SAXParseException:前缀“context” for element “上下文:组件扫描”没有约束。或org.xml.sax.SAXParseException:前缀“context” for element “上下文:注释配置” is not bound . This 是 sue generally occurs when you do not include 语境 名称 space. 例如: Lets say you have below […]

发表评论 取消回复

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


成为朋友

©2020 爪哇 2博客