Is there any way to override a bean discovered by component scan?

时光总嘲笑我的痴心妄想 提交于 2019-12-01 02:40:23

Try to skip unnecessary beans:

@ComponentScan(basePackages = { "com.blah" }, excludeFilters = @Filter({UnnecessaryBean1.class, UnnecessaryBean2.class}))

Yes you can override bean discovered by component scan. I do it this in test cases. I use XML configuration but I think with Java Configuration will be very similar.

spring.xml:

 <context:component-scan base-package="cz.backend"/>

MyBeanImpl.java

@Component("myBean")
public class MyBeanImpl implements MyBean {
   //Something
}

In test folder I have:

spring-test.xml:

<import resource="classpath:/spring.xml"/>
<bean id="myBean" class="cz.backend.MyBeanTestMock"/>

MyBeanTestMock.java:

public class MyBeanTestMock implements MyBean {
    //Something
}

Name of override bean must be same.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!