2014-12-03 25 views
0

我正在使用Spring和JSF 2.0。 這是怎麼我的課的樣子 @ManagedBean(名稱=「用戶登陸」,急於= TRUE) @SessionScoped 公共類用戶登陸JSF + Spring在ManagedBean中使用@Autowired;我們是否需要setter和getters

在這個類中,我使用以下屬性

@Autowired 
@ManagedProperty(value = "#{userService}") 
private UserService userService; 

而且這是我的userService看起來像

@Service( 「userService」)

在像Struts框架,我可以使用userService無因爲它被命名爲服務。 請告訴如何使用這個沒有setter和getters,因爲我覺得它是一種開銷。

基本上我只想擺脫userService的getter和setter作爲它的Spring bean。

問候 Rashen

+0

這是我userService類看起來像 @Service( 「userService」) @Transactional(唯讀=真) 公共類UserServiceImpl實現UserService {} – 2014-12-03 10:20:02

+1

如果使用@ ManagedBean/@ ManagedProperty,你需要的getter/setter 。如果您使用@ Component/@ Autowired,則不需要。你的混合JSF/Spring,它不會工作(在你的例子中不需要@Autowired)。 – atamanroman 2014-12-03 10:26:32

+0

它確實工作。謝謝 – 2014-12-05 03:04:49

回答

0

@ManagedProperty(value = "#{userService}")可能什麼也不做在這裏,因爲UserService不是JSF託管bean(從您的評論的代碼判斷)。您正在組合兩種依賴注入策略,其中您只需要一種(需要設置者爲@ManagedProperty)。

如果您刪除@ManagedProperty並只保留@Autowired,我認爲它應該可以工作。

+0

是的,我只用了@Component和@Scope(「session」) – 2014-12-05 03:07:26

相關問題