手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

什么是spring的自动装配?

时间:2024-10-12 02:20:13

1、自动装配是让应用程序上下文为您找出依赖项的过程。

什么是spring的自动装配?

2、如果试图构造具有依赖项的bean,有时不需要显式地定义该链接。下面给出了说明。

3、定义application.xml如下:

什么是spring的自动装配?

4、编写测试类如下:

什么是spring的自动装配?

5、XML配置指示应用程序上下文查找可以在SpellCheckApplication类的构造函数(即类型字典的类)中使用的类型。由于此应用程序上下文中唯一的其他类是filedictiontion_dictionary的实现—它用于构造SpellCheckApplication类。

6、如果上下文中没有字典实现,那么在尝试构造应用程序上下文时就会抛出一个错误:NoSuchBeanDefinitionException。

7、如果有多个字典bean,上下文就会尝试通过名称匹配bean,也就是说,将XML定义中的ID给出的名称与构造函数中的参数名称匹配。如果没有匹配,则抛出异常;再次,NoSuchBeanDefinitonException。

什么是spring的自动装配?

8、同样,如果使用XML配置方法,必须有一套良好的集成测试来确保正确构造bean,这一点再强调也不为过。

9、上面示例展示了Spring应用程序上下文日常使用的一个常见模式:使用XML上下文定义bean,然后自动集成这些bean。

10、自动装配的另一个用途是标注要自动装配的依赖关系。下面显示了在SpellCheckApplication构造函数上的效果。

什么是spring的自动装配?

11、以这种方式使用注释,您不需要在XML bean定义上有一个autowired属性。

12、您甚至可以在没有公共可访问的构造函数或setter方法的情况下自动装配类中的字段。下图自动将Dictionary实例连接到一个私有字段。类中没有字典的setter,可以删除构造函数。

什么是spring的自动装配?

13、如果您的上下文包含多个相同类型的bean,您仍然可以使用@Autowired注释,但是您需要明确表示您指的是哪个bean。第二个注释@Qualifier用于此。注释的构造函数接受一个字符串,这是连接所需的bean的名称:

什么是spring的自动装配?

14、这些注释是特定于Spring的。如果您决定为不同的提供者(比如谷歌的Guice)更改容器,那么,尽管应用程序代码的概念不会更改,但是您需要重新实现依赖项注入和bean创建代码,以便使用它们的实现。一个名为JSR-330的规范在不同的提供者之间对注释进行标准化。您可以使用@Inject代替@Autowired。

什么是spring的自动装配?
© 手抄报圈