Java grails如何在没有对象注入的情况下注入正在扩展savedRequestAwareAuthenticationSuccessHandler的类的bean

Java grails如何在没有对象注入的情况下注入正在扩展savedRequestAwareAuthenticationSuccessHandler的类的bean,java,spring,grails,spring-security,dependency-injection,Java,Spring,Grails,Spring Security,Dependency Injection,成功处理程序: class SuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler{ public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentica

成功处理程序:

class SuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler{
    public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response,
                                        final Authentication authentication) throws ServletException, IOException {
        String targetUrl = determineTargetUrl(request, response)
        redirectStrategy.sendRedirect(request, response, targetUrl)
    }
    @Override
    protected String determineTargetUrl(HttpServletRequest request,
                                        HttpServletResponse response) {
        boolean hasAdmin =SpringSecurityUtils.ifAllGranted("ROLE_ADMIN");
        boolean hasUser=SpringSecurityUtils.ifAllGranted("ROLE_USER");

        if(hasAdmin){
            return adminUrl;
        }else if (hasUser){
            return userUrl
        }else{
            return super.determineTargetUrl(request, response);
        }
    }
    private String adminUrl
    private String userUrl

    public void setAdminUrl(String adminUrl){
        this.adminUrl = adminUrl
    }

    public void setUserUrl(String userUrl){
        this.userUrl = userUrl
    }

}
资源:

import successHandler.SuccessHandler

// Place your Spring DSL code here
beans = {
    authenticationSuccessHandler(SuccessHandler) {
        adminUrl = '/admin/adminPanel'
        userUrl = '/'
    }
}
我想知道在没有创建任何对象的情况下,如何注入
adminUrl
userUrl
属性

据我所知,我们应该创建一个对象,例如
def authenticationSuccessHandler
。这将使用Autowired创建对象,然后该对象将被注入资源bean中定义的属性


但是,在没有创建任何对象的情况下,如何注入属性呢?

不确定这是否有帮助,但上面对grails应用程序说:当您点击
SuccessHandler
时,使用
authenticationSuccessHandler
(覆盖underying方法),同时覆盖将adminUrl和userUrl设置为。。。您谈论的是注入,这通常是针对服务的注入,而这不是一个服务,没有任何代码可以命中SuccessHandler。我所做的只是扩展了SpringSecuritySuccessHandler类,它起了作用,但我不知道怎么做。在上述类中调用方法determinateTargetUrl()不需要创建SuccessHandler的对象吗?我没有为这个类创建对象,但是它工作了。知道怎么做吗?。我希望这能回答你的问题<代码>成功处理程序不需要调用方法determinateTargetUrl()成功处理程序正在执行自己的操作或自定义定义的操作。您正在覆盖resources.groovy中的默认值。我认为这个问题并不是一个真正的问题,因为你把注入和重写方法混淆了。您正在将
authenticationSuccessHandler
注入默认的
SuccessHandler
`我没有为类创建对象,但它工作了。你知道插件是如何工作的吗?甚至在你做这个改变之前,插件就已经工作了