Im tryin to inject a interface with an implementation but it is always null.
I use the dependency
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
And this is the code
LoginServlet class
@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());
}
}
UserDao interface
public interface UserDao {
User findByUsername(String username);
}
UserDaoImpl class
public class UserDaoImpl implements UserDao {
@Override
public User findByUsername(String username) {
User user = new User();
user.setName("HEEEY");
return user;
}
}
And the user class
public class User {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
I do not get this to work.. and do not understand why.