3
@SessionScoped 관리 빈과 @EJB가 포함 된 몇 가지 관리 빈에 대해 수퍼 클래스를 만들고 싶습니다. 다음 작품Managed Bean 상속
슈퍼 클래스 :
@ManagedBean
@ViewScoped
public abstract class UserPageController implements Serializable {
private static final long serialVersionUID = -6118448960678133445L;
@ManagedProperty(value = "#{sessionController}")
protected SessionController sessionController;
private User user;
private String userId;
@EJB protected UserBean userBean;
public UserPageController() {
}
public SessionController getSessionController() {
return sessionController;
}
public void setSessionController(SessionController sessionController) {
this.sessionController = sessionController;
}
//-------------------------------- User ------------------------------------
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public User getUser() {
if (user == null) {
if (getUserId() != null && sessionController.getLoggedInUser().getRole().isManager()) {
User dbUser = userBean.findUser(Long.parseLong(userId));
if (dbUser != null) {
setUser(dbUser);
}
} else {
setUser(userBean.findUser(sessionController.getLoggedInUser().getId()));
}
}
return user;
}
public void setUser(User user) {
this.user = user;
}
}
사용법 :
@ManagedBean
@ViewScoped
public class UserCompetenceController extends UserPageController implements Serializable {
// Stuff that uses sessionController & userBean.
}
관리 빈으로 추상 슈퍼 클래스에 주석을 피하기 위해 어떤 방법이 있나요? 그것은 어떻게 든 느껴지지만, 그것 없이는 의존성 주입이 작동하지 않습니다.