Разница между @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");
}

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

1 ответ

Решение

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

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

Другие вопросы по тегам