首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java 2.5.10如何注入play-jongo

Java 2.5.10如何注入play-jongo
EN

Stack Overflow用户
提问于 2016-12-09 10:35:24
回答 1查看 328关注 0票数 0

我有以下模型:

代码语言:javascript
复制
public class Users {

    public static PlayJongo jongo = Play.current().injector().instanceOf(PlayJongo.class);

    public static MongoCollection users() {
        return jongo.getCollection("DB.users");
    }
..
..

public static Users authenticate(String email, String password) {
        Users user = users().findOne("{email: #, removed: false}", email).as(Users.class);

        if (user != null) {
            if (HomeController.checkPassword(password, user.password)) {
                return user;
            }
        }

        return null;
    }
..

我在我的控制器中使用它作为:

代码语言:javascript
复制
public Result authenticate() {
        DynamicForm requestData = Form.form().bindFromRequest();
        String email = requestData.get("email").trim();
        String password = requestData.get("password").trim();
        Users user = Users.authenticate(email, password);
        if (user == null) {
            flash("danger", "Incorrect email or password.");
            return redirect(routes.HomeController.login());
        }
        session("email", user.getEmail());
        session("role", user.getRole());
        session("fullname", user.getLastname() + " " + user.getFirstname());
        session("id", user.getId().toString());

        return redirect(routes.HomeController.index());
    }

我尝试了大量的组合使用注射与播放-jongo没有结果。例如。

代码语言:javascript
复制
@Inject
public  PlayJongo jongo;

public  MongoCollection users() {
          return jongo.getCollection("DocBox.users");
}

我输入一个静态/非静态引用上下文错误的循环。如果删除所有静态声明,则无法调用Users.method。如果我试图将用户注入控制器

代码语言:javascript
复制
  public class HomeController extends Controller {

  @Inject
  public Users users;
  .
  .

并尝试调用用户方法:

代码语言:javascript
复制
   Users user = users.authenticate(email, password);

我收到了一个org.jongo.marshall.MarshallingException。我的大脑肯定是过热了,有人能解释我怎么用注射吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-15 11:53:43

我解决了问题。现在我有了一个UsersRepository,它包含对mongo集合进行操作的方法(authenticate,addUser,等)。以及只包含实际数据字段(名字、姓氏、电子邮件等)的User对象。

之后,我可以将UsersRepository注入到控制器中,并在任何地方使用该实例。

感谢Greg,技术领先的框架

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41058404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档