java - @Autowired JSF 2 Spring 3 空

标签 java spring jsf-2 code-injection

我无法使用@Autowired 注入(inject)服务。

AplicationContext.xml

    <context:component-scan base-package="com.mypackage" />
<context:component-scan base-package="com.mypackage.bean" />
<context:component-scan base-package="com.mypackage.dao" />
<context:component-scan base-package="com.mypackage.service" />
<context:component-scan base-package="com.mypackage.filters" />
<context:annotation-config />

faces-config.xml

    <application>
     <el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver></application>

web.xml

    <listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
  </listener>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

服务声明:

    @Service
public class UsuarioServiceImpl extends GenericServiceImpl implements UsuarioService{...}

托管Bean:

@ManagedBean(name="cadastroUsuarioMB")
@SessionScoped
public class CadastroUsuarioBean {

    @Autowired
    UsuarioService usuarioService;

    private Usuario usuario = new Usuario();

    public String salvar() {
                //Error !!! usuarioService is null !
        usuarioService.retornaUsuarioPorLogin(usuario.getEmail(), usuario.getSenha());
        JsfUtil.addSuccessMessage(null, usuario.getCelular());
        return "";
   }
}

最佳答案

该错误是因为 UsuarioService 是 spring 上下文托管 bean,而 @ManagedBean 是 jsf 托管 bean。任何一个 1)用@Component替换@ManagedBean以使@Autowire注入(inject)服务或 2)

@ManagedProperty(value="#{usuarioService}")
private UsuarioService usuarioService ; // mutators for this.
}

关于java - @Autowired JSF 2 Spring 3 空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22610652/

相关文章:

java - 如何使用 @Valid List 的 BindingResult 获取错误列表

Java 8 流和简单类型

java - Play Framework :[RuntimeException:java.lang.reflect.InvocationTargetException]

java - 从我的 Java Web 服务器正确获取图像

spring - 找不到构造函数的参数 0 - Spring Boot 和 Tomcat

java - RestController - 将 POST 请求转发到外部 URL

java - JSF EL : Fallback if l18n-Propperty not found

java - JSF 2.0 : How to submit a form securely on a HTTP page

java - spring boot 在 json 响应中包含 OneToMany 关联

jsf-2 - 未使用字符串以外的对象调用 Primefaces selectOneMenu 监听器