小编Mar*_*ark的帖子

如何覆盖Spring @Autowired的行为

一点背景:

我正在使用Spring 2.5,特别是Spring IOC和注释.

@Autowired在我的代码中使用(自动装配是按类型完成的)并 @Component用于将类暴露给自动接线.

我试图测试我的代码时出现了下面描述的情况.

现在来问题:

注意:我为Test环境使用不同的Spring Context.

我有一个类FOO,@Autowired但在测试上下文中我想使用相同类型的不同类MockFoo(extends FOO).

当然,建立春季由于对的依赖注入多个选项自动故障FOO类(包括FOOMockFOO符合该类型检查).

我正在寻找一种方法来注入测试bean而不是原始的bean.

我希望Spring允许使用Context配置文件来覆盖bean注入或命令Spring不要自动装配特定的bean.

所有这些选项似乎只存在于最初在Spring Context Configuration文件中定义的bean.

spring unit-testing dependency-injection

8
推荐指数
1
解决办法
5152
查看次数

通过DI在Spring Framework中正确使用LOG4J

我试图使用Log4j作为Spring Framework的一部分,据我所知,通过使用适当的bean,系统应该映射代码中可访问的单例实例,同时自动将日志记录深度映射到类

类似于Log4J的正常使用

Logger log = Logger.getLogger(getClass());

我一直在使用以下Spring bean定义

<bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
    <property name="targetClass"
        value="org.springframework.util.Log4jConfigurer" />
    <property name="targetMethod" value="initLogging" />
    <property name="arguments">
        <list>
            <value>conf\log4j.xml</value>
        </list>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

但我无法将此bean映射到给定类中的特定成员,也无法通过@autowired使用它

如果有更好的方法来集成Log4j和Spring,请告诉我

最好的祝福

标记

java spring log4j

6
推荐指数
1
解决办法
4901
查看次数

是否可能Spring在两个地方自动装配原型范围的同类实例

**更改了示例以更好地表达情况

我使用的是2.5版弹簧并且有以下情况

@Component
@Scope("prototype") 
Class Foo
{
}

class A
{ 
  @Autowired 
  Foo fooA;
}


class B
{ 
  @Autowired 
  Foo fooB;
}



class C
{ 
  @Autowired 
  Foo fooC;
}
Run Code Online (Sandbox Code Playgroud)

我想了解是否有某种方式来使用@Autowired和绑定的同一个实例FOOfooA,并fooB同时结合不同的实例fooC

我明白,如果它的范围FOO将是singleton有效的

但是如果有一种方法可以在使用protoype示波器时达到相同的目标,我就会徘徊.

还请解释一下这是自动装配概念的正确用法吗?我试图滥用弹簧框架的目的

spring inversion-of-control autowired

4
推荐指数
2
解决办法
7254
查看次数