Mas isso na versão 2.5.6 do Spring com JSF 1.2??![/quote]
Sim.
Obviamente,tendo que mapear o bean no applicationContext.xml primeiro.[/quote]
Sim isso é obvio, mas a única anotação que eu achei como resource foi a javax.annotation.Resource que espera como parâmetro um JNDI.
Outra coisa, o mapeamento dos beans do spring/hibernate usando anotação eu sei que é possível, agora, entre beans do spring e Mbeans do JSF apenas é possível utilizando configuração via XML, segundo a documentação oficial.
Fiz um teste aqui e o ao tentar acessar um bean do spring a partir do MBean rolou uma NPE, segue os códigos
MBean
package br.com.fox.imobiliaria.mbean;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import br.com.fox.imobiliaria.entity.State;
import br.com.fox.imobiliaria.service.StateService;
public class StateMBean {
private State state = new State();
@Resource
private StateService stateService;
public void setStateService(StateService stateService) {
this.stateService = stateService;
}
public State getState() {
return state;
}
public void setState(State state) {
this.state = state;
}
public String save() {
stateService.save(state);
return list();
}
//demais codigos omitidos
state-faces-config
<?xml version="1.0"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>stateMBean</managed-bean-name>
<managed-bean-class>br.com.fox.imobiliaria.mbean.StateMBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<!-- <managed-property>-->
<!-- <property-name>stateService</property-name>-->
<!-- <property-class>br.com.fox.imobiliaria.service.StateService</property-class>-->
<!-- <value>#{stateService}</value>-->
<!-- </managed-property>-->
</managed-bean>
<!-- demais códigos omitidos -->
faces-config
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<application>
<view-handler>com.sun.facelets.FaceletViewHandler</view-handler>
<variable-resolver>org.springframework.web.jsf.SpringBeanVariableResolver</variable-resolver>
<locale-config>
<default-locale>pt_BR</default-locale>
<supported-locale>pt_BR</supported-locale>
</locale-config>
<message-bundle>br.com.fox.imobiliaria.resources.Messages_pt_BR</message-bundle>
</application>
</faces-config>
applicationContext.xml
[code]<?xml version=“1.0” encoding=“UTF-8”?>
<beans xmlns=“http://www.springframework.org/schema/beans”
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:context=“http://www.springframework.org/schema/context”
xsi:schemaLocation=“http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd”>
<context:annotation-config />
<context:component-scan base-package="br.com.fox.imobiliaria.service.impl" />
<context:component-scan base-package="br.com.fox.imobiliaria.repository.dao.impl" />
<!-- demais códigos omitidos -->[/code]
Se for realmente possível mapear beans do spring no MBean do JSF usando anotação, por favor me indique o que eu devo mudar!