繁体   English   中英

如何在Wicket Session类中自动装配Spring bean?

[英]How to autowire Spring bean in Wicket Session class?

我有一个Wicket Session课程,如下

public class IASession extends AuthenticatedWebSession {
    private static final long serialVersionUID = 3529263965780210677L;

    @SpringBean
    private UserService userService;

    public IASession(Request request) {
        super(request);
    }

    @Override
    public boolean authenticate(String username, String password) {

        // Get the user
        UserDetailsDTO user = userService.findByEmail(username);

        if(null != user && user.getPassword().equals(password))
            return true;
        else
            return false;
    }

    @Override
    public Roles getRoles() {
        Roles roles = new Roles();
        roles.add("SIGNED_IN");
        return roles;
    }
}

在此类中,我尝试使用wicket-spring注释@SpringBean自动装配Spring服务。 但是,当我尝试登录时,它给了我错误。

Last cause: null
WicketMessage: Method onFormSubmitted of interface org.apache.wicket.markup.html.form.IFormSubmitListener targeted at [StatelessForm [Component id = login-form]] on component [StatelessForm [Component id = login-form]] threw an exception

Wicket无法自动连接userService弹簧bean,这就是为什么它为null

我该怎么做才能解决此问题?

由于会话不是组件或行为,因此您必须覆盖构造函数并调用Injector.get.inject(this)。 请参阅SpringComponentInjector文档。

    public IASession(Request request) {
       super(request);
       Injector.get().inject(this);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM