2011-04-27 23 views
3

我继承了一些JSF春天代码,可以看到通过faces-config.xml作为通过XML或代码JSF春天注入

<managed-bean> 

球队注入的Spring bean,而不是已经在代码中完成它

FacesContext facesContext = FacesContext.getCurrentInstance(); 
    ELResolver elResolver = facesContext.getApplication().getELResolver(); 
    MyClass myBean = (MyClass) elResolver.getValue(facesContext.getELContext(), null,ApplicationConstants.MY_BEAN_NAME); 

我宁愿在xml中执行此操作 - 有没有这方面的优势,或者它没有什么大不了的?

版本是JSF 1.2和Spring 3

+0

你显示的代码放在哪里? – 2011-04-27 09:59:45

+0

@Jigar:在一个托管的bean类中作为实例变量。托管bean的会话范围 – JoseK 2011-04-27 10:51:37

+0

我更喜欢XML或注释(jsf 2.0样式) – 2011-04-27 10:58:06

回答

5

也许他们只是不喜欢XML?

就个人而言,我会尽可能使用基于注解的依赖注入,而不是XML配置或代码。

但是,有一种情况是基于代码的方法是唯一可行的:当您拥有一个具有较大范围的托管bean(例如会话甚至应用程序)并且它的某个操作需要访问托管具有较小范围的bean(例如请求)。

+0

不知道。这里都是会话范围。 – JoseK 2011-04-27 10:55:33

+0

你是指'@ Autowired'注解吗? – JoseK 2011-04-27 10:57:28

+0

@JoseK:不,我正在谈论有关@ManagedProperty的问题,但现在我看到您使用的是JSF 1.2,而这些注释仅在JSF 2中引入。在这种情况下,我同意您的观点:XML配置将更可取。 – 2011-04-27 11:04:26