Разница между @ManagedProperty и FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get(bean)

Какая разница между:

public class GameController implements Serializable{

@ManagedProperty(value="#{Gamebean}")
private Game game;

и

public class GameController implements Serializable{

private Game game;

public GameController(){
game =(Game)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("Gamebean");
}

и если нет разницы, какой метод лучше? Ваше здоровье.


person gastonovic    schedule 13.12.2015    source источник


Ответы (1)


Способ @ManagedProperty автоматически создаст bean-компонент, если он еще не существует. Способ getSessionMap() не будет и может, таким образом, вернуть null, если bean-компонент не был (авто) создан заранее.

Код, который достигает того же с наименьшими усилиями и беспокойством, лучше.

person BalusC    schedule 13.12.2015
comment
Спасибо за ответ :D - person gastonovic; 13.12.2015