在没有组件扫描的情况下注册Spring bean

时间:2014-01-17 23:26:52

标签: spring

我有MySimpleController,我需要将此控制器提取到公共库。

package xxx.mypackage;

@Controller
class MySimpleController{}

此库具有不同的包名称yyy.newpackage,它与之前的xxx.mypackage不同。因此,它不适合组件扫描。

这是一个问题:有没有办法在没有组件扫描的情况下注册这个控制器?我只想包括我的罐子并正确地期待我的控制器。我在META-INF文件夹中看到了一些定义,但无法确定这是正确的方法。

2 个答案:

答案 0 :(得分:1)

为整个第三方库创建配置

@Configuration
public class CustomConfig {

    @Bean
    public MySimpleController mySimpleController(){
        return new MySimpleController();
    }
}

并导入此配置而不扫描

@Import(CustomConfig.class)

我的示例是在JavaConfig中,但这也适用于xml配置。

答案 1 :(得分:0)

将此控制器作为bean添加到applicationCOntext中的新包中。通过这样做,它将是通过xml配置加载的唯一bean,而其他一切都是通过组件扫描。

<beans>
    <bean name="myBean" class="yy.MySimpleController"/>
</beans>