一个接口:BeanMapperUtil
两个实现bean:
orikaBeanMapper
-单件bean并标记为@primary
DirectBeanMapper
-原型Bean在Manager类中:
@Autowired
BeanMapperUtil mapper;
观察:spring创建了orikaBeanMapper
和directbeanMapper
,然后创建了autowiresorikaBeanMapper
。
预期:由于orikaBeanMapper
已经标记为@primary
,spring应该只创建这个bean并自动连接它。spring不需要创建DirectBeanMapper
的实例。这对性能/功能没有影响,但这看起来像是浪费的实例创建,只会被丢弃。
@primary
在创建了所有匹配bean之后作为过滤器工作。它的设计并不是为了阻止查找和创建其他的、非主要的、匹配的bean。
当spring尝试自动连接BeanMapperUtil
时,它将找到两个匹配项,OrikaBeanMapper
和DirectBeanMapper
,并且将创建这两个匹配项。此时,@primary
开始发挥作用。spring将选择带有@primary
注释的bean进行注入。
当您的应用程序启动时,spring容器创建注册在其中的所有bean(包括原型bean)的实例,并将该bean存储在BeanFactory中。
因此,所有bean都被一次创建,并且只有BeanMapperUtil被注入,因为它被用于自动连接。
我是个新手,所以请不要介意我的问题是愚蠢的 我有一个实现两个接口的类 我正在上下文类中定义bean对象,如下所示:
有没有可能让一个Spring Bean实现两个接口,并能够使用任何一个接口自动连接Bean? 一个实现两个服务的类 我正在获取: 原因:org.springframework.beans.factory.NoSuchBeanDefinitionException:找不到依赖项[ServiceB]的[ServiceB]类型的合格bean:需要至少有一个bean可以作为此依赖项的自动候选项。依赖项批注
假设我需要依赖一个Spring bean的几个实现。我有一个接口和两个实现:和。 下面的注入将使用哪个实现?
我在WebDriver中的测试有问题。 在第一个包我有2类(页)主页,登录页。 在secound包中,我有test-goToLiginPageTest和LoginTest。 在Gotoligini页面,我检查,我在主页上,并进入登录页面。 在LoginTest中,我检查我是否在登录页面上,并登录。 但来自goToLiginPageTest的两个测试通过,但来自LoginTest的测试失败。 我不确
我有两个spring bean类实现相同的接口。 你能给我一个建议吗。
我基本上想要一个EC2,一个接口在公共子网,一个在私有子网。我应该能够通过公共接口从外界SSH,私有网络将用于与私有网络中的数据库通信。 在地形上。。。 我在该 VPC 中创建了一个 VPC,两个子网(一个公共子网,一个私有子网)。 创建了一个互联网网关,即 VPC 中的路由表,其路由为 0.0.0.0/0 至 IGW 已在与公有子网和路由表之间创建路由关联。 已创建一个 EC2 实例,其中一个接