0

在来自控制器的以下代码片段中,我在尝试访问 springSecurityService.currentUser 时收到空指针异常。我希望 def springSecurityService 自动注入服务,我错过了什么?

@Transactional(readOnly = true)
@Secured('ROLE_USER')
class TaskController {

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

    def index(Integer max) {
        params.max = Math.min(max ?: 10, 100)
def springSecurityService
def user = springSecurityService.currentUser
4

1 回答 1

5

将其他 Spring bean 注入到您的控制器或服务中是在类级别而不是在方法中完成的。

例如,您的代码应如下所示:

@Transactional(readOnly = true)
@Secured('ROLE_USER')
class TaskController {

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
    def springSecurityService // inject the bean here, at the class level

    def index(Integer max) {
        params.max = Math.min(max ?: 10, 100)
        def user = springSecurityService.currentUser
于 2016-11-08T03:17:36.207 回答