依赖注入始终为null

时间:2016-06-17 11:17:12

标签: java dependency-injection

我试着注入一个带有实现的接口,但它始终为null。

我使用依赖

"SignatureVersion":["2"]

这是代码

LoginServlet类

<dependency>
    <groupId>javax.inject</groupId>
    <artifactId>javax.inject</artifactId>
    <version>1</version>
</dependency>

UserDao界面

@Named
@RequestScoped
@WebServlet(urlPatterns = "/login.do")
public class LoginServlet extends HttpServlet {

    @Inject
    UserDao userDao;

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
        User user = userDao.findByUsername("USERNAME");

        PrintWriter out = response.getWriter();
        out.println(user.getName());
    }
}

UserDaoImpl类

public interface UserDao {

    User findByUsername(String username);
}

用户类

public class UserDaoImpl implements UserDao {

    @Override
    public User findByUsername(String username) {
        User user = new User();
        user.setName("HEEEY");
        return user;
    }
}

我没有让它发挥作用..并且不明白为什么。

4 个答案:

答案 0 :(得分:0)

试试这个:

auto

我认为,这应该有用。

答案 1 :(得分:0)

Workbook.Range("SomeName").Value

上添加@RequestScoped注释
UserDaoImpl

答案 2 :(得分:0)

要么缺少beans.xml,要么没有可用的cdi库。 (Tomcat应该拥有它,因此很可能缺少beans.xml)

在以下描述的位置中名为beans.xml的空文件:

Where should beans.xml be placed?

就够了。

答案 3 :(得分:0)

CDI扫描仪似乎没有扫描您的咖啡豆。 在cordova platform add https://github.com/apache/cordova-android

下添加此空beans.xml个文件
src/main/resources/META_INF

这将激活扫描。