@@ -57,6 +57,8 @@ public boolean supportsParameter(MethodParameter parameter) {
5757 * 解决方式:
5858 * 新建一张visualis_user表,复用原来的权限逻辑,
5959 * 如果访问Visualis时,使用该注解,没有该用户,即插入用户,录入用户信息。
60+ *
61+ * 多个请求同时访问时,需要两步,查数据库和
6062 */
6163 @ Override
6264 public Object resolveArgument (MethodParameter parameter , ModelAndViewContainer mavContainer , NativeWebRequest webRequest , WebDataBinderFactory binderFactory ) {
@@ -68,17 +70,20 @@ public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer m
6870 String accessUsername = SecurityFilter .getLoginUsername (webRequest .getNativeRequest (HttpServletRequest .class ));
6971 log .info ("Get request access user name: {}" , accessUsername );
7072 User visualisUser = null ;
71- synchronized (this ) {
72- visualisUser = (User ) userMapper .selectByUsername (accessUsername );
73- log .info ("Get visualis user from table: {}" , visualisUser );
74- User user = new User ();
75- if (null == visualisUser ) {
76- user .setUsername (accessUsername );
77- user .setName (accessUsername );
78- user .setPassword (null );
79- log .info ("Insert into visualis user: {}" , user );
80- userMapper .insert (user );
81- return user ;
73+ visualisUser = (User ) userMapper .selectByUsername (accessUsername );
74+ if (null == visualisUser ) {
75+ synchronized (this ) {
76+ visualisUser = (User ) userMapper .selectByUsername (accessUsername );
77+ log .info ("Get visualis user from table: {}" , visualisUser );
78+ User user = new User ();
79+ if (null == visualisUser ) {
80+ user .setUsername (accessUsername );
81+ user .setName (accessUsername );
82+ user .setPassword (null );
83+ log .info ("Insert into visualis user: {}" , user );
84+ userMapper .insert (user );
85+ return user ;
86+ }
8287 }
8388 }
8489 return visualisUser ;
0 commit comments