java - "@inject"-ed 属性保持为空

标签 java jakarta-ee dependency-injection java-ee-6 javabeans

我正在尝试将服务注入(inject)到我的 bean 中,但它始终为 null。 我收到以下错误:WELD-001000 Error resolving property userBean against base null。

一些代码片段:

index.xhtml

<h:body>
    Hello from Facelets
    #{userBean.name}
</h:body>

userbean.java

package beans;

import Domain.User;
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import service.UserService;

@Named
@SessionScoped
public class UserBean implements Serializable{
    @Inject UserService service;
    private User user;

    public UserBean(){
        this.user = service.find_user("foo");
    }

    public String getName(){
        return "bar";
    }
}

UserService.java

package service;

import Domain.User;
import javax.ejb.Stateless;
import javax.inject.Named;

@Named
@Stateless
public class UserService {
    public UserService(){}

    public User find_user(String name){
        return new User();
    }
}

最佳答案

另一种选择是使用@PostConstruct 方法注解。

@SessionScoped
public class UserBean implements Serializable {
    @Inject UserService service;
    private User user;
    public UserBean() {

    }

   @PostConstruct
    void init(){
        this.user = service.findUser("kaas"); 
    }

  }

阅读docs

关于java - "@inject"-ed 属性保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661022/

相关文章:

java - 如何扩展类数组/扩展类后调用类数组属性?

java - 无法打开 JPA EntityManager 进行事务。 JTA EntityManager 无法使用 getTransaction()

java - 我可以从 POST 请求返回不同的资源吗?

MVVM IoC 挑战 : implement concrete class for this ViewModel factory interface

java - jar 和源中的命名注释失败

java - @Inject 似乎在 JBoss AS 7 中不起作用

java - 将值从 servlet 传递到 html

java - Spring MVC View 和更新

java - DAO 设计模式并在多个表中使用它

java - AspectJ Maven 插件无法编译我的项目