Security 自定义登入处理 SuccessHandler 无法注入属性问题 空指针异常

Security 自定义登入处理 SuccessHandler 无法注入属性问题 空指针异常

  • 在自定义登入Security登入成功后的处理实现接口AuthenticationSuccessHandler 发现使用@Resoure或者 @Autowired无法注入属性的问题。为null
      • 后面发现AuthenticationSuccessHandler是个filter
      • 而web加载顺序是context-param -> listener -> filter -> servlet -> spring
      • 此时还在第三个阶段 此时spring还没有被加载 所以属性自然也没有被注入
        • 2个方法
  • 1.把原来的
  • 2.使用SpringUtils工具类获取bean

在自定义登入Security登入成功后的处理实现接口AuthenticationSuccessHandler 发现使用@Resoure或者 @Autowired无法注入属性的问题。为null

通过打断点发现没有注入进来Security 自定义登入处理 SuccessHandler 无法注入属性问题 空指针异常_第1张图片

后面发现AuthenticationSuccessHandler是个filter

而web加载顺序是context-param -> listener -> filter -> servlet -> spring

此时还在第三个阶段 此时spring还没有被加载 所以属性自然也没有被注入

2个方法

1.把原来的

@Resoure

private  UserRoleMapper userRoleMapper;

改成

 private static UserRoleMapper userRoleMapper;
@Resource
 public void setUserRoleMapper(UserRoleMapper userRoleMapper) {
        MyAuthenticationSuccessHandler.userRoleMapper = userRoleMapper;
    }

程序启动的时候spring 会对此类注入mapper,字段属性是static的,Mapper已经不为null 了
注意set方法不需要加上static

2.使用SpringUtils工具类获取bean

然后通过类从spring上下文中获取实例

https://blog.csdn.net/qq_34412985/article/details/89434681?tdsourcetag=s_pctim_aiomsg
我是用的是第一种方法可以成功注入属性使用

你可能感兴趣的:(java)