Есть ли способ переопределить компонент, обнаруженный при сканировании компонента?

У меня есть класс конфигурации Java, обеспечивающий fooBean напрямую и barBean путем сканирования компонентов.

@Configuration
@ComponentScan(basePackages = { "com.blah" })
public class Config {

    @Bean
    public FooBean fooBean {
        return new FooBean();
    }
}

и я хочу повторно использовать его в тестовых примерах, и мне нужно заменить бины на макеты:

@Configuration
@Import(Config.class)
public class TestConfig {

    @Bean
    public FooBean fooBean {
        return new FooBeanMock();
    }

    @Bean
    public BarBean barBean {
        return new BarBeanMock();
    }
}

(здесь нет особого смысла повторно использовать Config, но в реальной жизни у меня есть 1000 Бинов, и мне нужно издеваться над немногими)

Здесь fooBean переопределяется, но не barBean.

Skipping loading bean definition for %s: a definition for bean " + "'%s' already exists. This is likely due to an override in XML.

Существует также официальная проблема для этого:https://jira.springsource.org/browse/SPR-9682

Кто-нибудь знает какой-либо обходной путь для переопределения bean-компонента, обнаруженного при сканировании компонента?

принимая во внимание, что bean-компонент является устаревшим кодом и не может быть изменен, а для его зависимостей отсутствуют установщики NO (закрытые атрибуты + @Resource).

Ответы на вопрос(2)

Ваш ответ на вопрос