2014-01-17 43 views
1

我有MySimpleController,我需要將此控制器提取到一個公共庫。註冊彈簧豆沒有組件掃描

package xxx.mypackage; 

@Controller 
class MySimpleController{} 

該庫具有不同的包名,yyy.newpackage比以前xxx.mypackage不同。因此,它不適用於組件掃描。

下面是問題:有沒有辦法註冊這個控制器沒有組件掃描?我只想包括我的罐子,並期望我的控制器正確。我在META-INF文件夾中看到了一些定義,但不能確定這是否正確。

回答

0

將此控制器添加爲您的applicationCOntext中新包的bean。通過這樣做,它將是唯一通過xml配置加載的bean,而其他所有內容都是通過組件掃描。

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

這需要在我的用戶配置中進行更改。我希望我的jar包含在內,並且無需任何手動註冊即可運行。 – Cemo

+0

好吧,如果你把它作爲一個jar文件移出來,有人會把這個jar文件當作依賴項來使用嗎?如果是這樣,他們會不會使用MySimpleController作爲代碼中的依賴項? – Hrishikesh

+0

是的,它將用作依賴項。 MySimpleController是完整的功能代碼,其他部分不會與此控制器交互。把它看作是提供一些系統信息的控制器。 – Cemo

1

創建整個第三方庫

@Configuration 
public class CustomConfig { 

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

配置和導入此配置,而無需掃描

@Import(CustomConfig.class) 

我的樣品是JavaConfig,但是這適用於xml配置了。

+0

我想自動導入。 – Cemo

+1

太好了。這是更好的解決方案 – Hrishikesh

+0

@Cemo自動無需掃描? :) – MariuszS