草庐IT

Bean-IOC

全部标签

java - Spring:确保首先初始化特定的 bean

我有一个库在运行时设置和配置log4j(没有log4j.properties或log4j.xml)。我已经定义了一个名为MyLoggerFactory的bean,我希望这是第一个使用spring初始化的bean。我已经看到一个问题已经提交给spring以支持初始化顺序,但我想知道是否有办法将bean标记为第一个要由spring容器初始化的bean? 最佳答案 您的选择是:使用@DependsOn注释(spring3.0.x之后可用)或depends-onxml-attribute并使所有使用配置的记录器的类都依赖于记录器工厂使工厂成

java - Spring:确保首先初始化特定的 bean

我有一个库在运行时设置和配置log4j(没有log4j.properties或log4j.xml)。我已经定义了一个名为MyLoggerFactory的bean,我希望这是第一个使用spring初始化的bean。我已经看到一个问题已经提交给spring以支持初始化顺序,但我想知道是否有办法将bean标记为第一个要由spring容器初始化的bean? 最佳答案 您的选择是:使用@DependsOn注释(spring3.0.x之后可用)或depends-onxml-attribute并使所有使用配置的记录器的类都依赖于记录器工厂使工厂成

java - 当配置文件不活动时包括 bean 定义

在我的应用程序中,我使用了几个profiles使某些bean有资格进行Autowiring。我缺少的是当某个配置文件不活动时使bean有资格进行Autowiring的可能性。我想到的最好的方法是这样的:假设我们有一个所有可能配置文件的列表,例如{A、B、C、D}。可用于特定执行的配置文件是{A,C}。我所做的是为所有可能的未激活的配置文件创建人工配置文件。在示例中,我将创建{not_B,not_D}配置文件。我想根据非Activity配置文件X激活的bean我为配置文件not_X激活。在我的情况下,如果我希望一个bean在配置文件B不活动时有资格Autowiring,我会注释它们@Pr

java - 当配置文件不活动时包括 bean 定义

在我的应用程序中,我使用了几个profiles使某些bean有资格进行Autowiring。我缺少的是当某个配置文件不活动时使bean有资格进行Autowiring的可能性。我想到的最好的方法是这样的:假设我们有一个所有可能配置文件的列表,例如{A、B、C、D}。可用于特定执行的配置文件是{A,C}。我所做的是为所有可能的未激活的配置文件创建人工配置文件。在示例中,我将创建{not_B,not_D}配置文件。我想根据非Activity配置文件X激活的bean我为配置文件not_X激活。在我的情况下,如果我希望一个bean在配置文件B不活动时有资格Autowiring,我会注释它们@Pr

spring - 在单元测试中覆盖 Autowiring 的 Bean

有没有一种简单的方法可以在特定的单元测试中轻松覆盖Autowiring的bean?编译类中每种类型只有一个bean,因此在这种情况下Autowiring不是问题。测试类将包含额外的模拟。在运行单元测试时,我只想指定一个附加的配置,基本上说,在运行这个单元测试时使用这个模拟而不是标准bean。配置文件对于我的要求来说似乎有点矫枉过正,我不确定这是否可以通过Primary注释来实现,因为不同的单元测试可能有不同的模拟。 最佳答案 如果您只是想在测试中提供不同的bean,我认为您不需要使用spring配置文件或mockito。只需执行以下

spring - 在单元测试中覆盖 Autowiring 的 Bean

有没有一种简单的方法可以在特定的单元测试中轻松覆盖Autowiring的bean?编译类中每种类型只有一个bean,因此在这种情况下Autowiring不是问题。测试类将包含额外的模拟。在运行单元测试时,我只想指定一个附加的配置,基本上说,在运行这个单元测试时使用这个模拟而不是标准bean。配置文件对于我的要求来说似乎有点矫枉过正,我不确定这是否可以通过Primary注释来实现,因为不同的单元测试可能有不同的模拟。 最佳答案 如果您只是想在测试中提供不同的bean,我认为您不需要使用spring配置文件或mockito。只需执行以下

java - org.springframework.beans.factory.NoSuchBeanDefinitionException : No qualifying bean of type [org. springframework.data.hadoop.hive.HiveOperations]

我的应用程序是hadoop和rest服务与spring框架的结合。我的目标是根据要求提供来自配置单元表的结果。但是当我运行应用程序时,在完成mapreduce和hive作业后出现以下错误:java.lang.reflect.InvocationTargetExceptionatsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)atsun.reflect.Delega

java - Spring bean 范围 : session and globalSession

Spring框架中的session和globalSession有什么区别?根据我的研究,两者在Web感知SpringApplicationContext的上下文中都是有效的。现在,sessionbean范围将一直保留到用户session,但globalSessionbean范围是否可以在整个应用程序中使用?是应用范围吗?我无法理解术语“全局HTTPsession”;它将在整个全局HTTPsession中可用吗? 最佳答案 globalSession是连接到Portlet应用程序的东西。当您的应用程序在Portlet容器中工作时,它由

java - Spring bean 范围 : session and globalSession

Spring框架中的session和globalSession有什么区别?根据我的研究,两者在Web感知SpringApplicationContext的上下文中都是有效的。现在,sessionbean范围将一直保留到用户session,但globalSessionbean范围是否可以在整个应用程序中使用?是应用范围吗?我无法理解术语“全局HTTPsession”;它将在整个全局HTTPsession中可用吗? 最佳答案 globalSession是连接到Portlet应用程序的东西。当您的应用程序在Portlet容器中工作时,它由

单元测试环境中的Spring bean重新定义

我们将Spring用于我的应用程序目的,并将Spring测试框架用于单元测试。不过我们有一个小问题:应用程序代码从类路径中的位置列表(XML文件)加载Spring应用程序上下文。但是当我们运行单元测试时,我们希望一些Springbean是模拟的,而不是成熟的实现类。此外,对于某些单元测试,我们希望一些bean成为mock,而对于其他单元测试,我们希望其他bean成为mock,因为我们正在测试应用程序的不同层。这意味着我想重新定义应用程序上下文的特定bean并在需要时刷新上下文。在执行此操作时,我只想重新定义位于一个(或多个)原始XMLbean定义文件中的一小部分bean。我找不到一个简