java - 我可以在运行时更改spring注入(inject)的实现类吗?

标签 java spring aop interceptor

我有一个由 spring 在 applicationContext.xml 上注入(inject)的类,我需要更改该实现而不更改 applicationContext.xml。

我听说过 AOP“IntroductionInterceptor”,但我没有发现很多有用的结果。

有人可以帮助我吗?

PS。抱歉我的英语不好,希望能理解。

最佳答案

解决问题的一种方法是应用 service locator pattern 。 您不是直接注入(inject) bean,而是注入(inject)一个可以返回不同实现的 ServiceLocator。

//ServiceLocator bean
public Class ServiceLocator {

    @Resource(name="service1")
    private Service service1;

    @Resource(name="service1")
    private Service Service2;

    public Service getService(String service) {
       return ... //service
    }
}

关于java - 我可以在运行时更改spring注入(inject)的实现类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318754/

相关文章:

c# - 如何在C#中制作一个简单的动态代理

java - Android MediaCodec 在异步模式下比在同步模式下慢?

java - Spring RDBMS 与 JDBCTemplate

java - 遍历列表,更好的方法

java - 分页Spring启动JPA异常:Method has to have one of the following return types

Spring OAuth2 问题

c# - 如何通过 C# TestFrameworks 使用 DI 框架中的 AOP? (不适用于被测项目)

Spring AOP 与 groovy : get called method

java - NumberFormatException 无法从文本文件解析字符串`

java - 从属性文件中读取@Path