diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 1f61647..704a5de 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; +import java.net.SocketException; import java.util.List; /** @@ -46,6 +47,28 @@ } /** + * 多次重试机制,保证mysql空闲释放的连接不报异常 + * @param user + * @return + * @throws Exception + */ + public User tryLogin(User user) throws Exception{ + User result = null; + boolean flag = false; + for(int i =0;i<5&&!flag;i++){//如果失败则重试,最多重试5次 + try{ + flag = true; + result = login(user); + }catch (SocketException ex){ + flag = false; + } + } + if(!flag) result = null; + return result; + + } + + /** * 以分页方式获取用户列表 * * @param params json格式的请求参数 diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 1f61647..704a5de 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; +import java.net.SocketException; import java.util.List; /** @@ -46,6 +47,28 @@ } /** + * 多次重试机制,保证mysql空闲释放的连接不报异常 + * @param user + * @return + * @throws Exception + */ + public User tryLogin(User user) throws Exception{ + User result = null; + boolean flag = false; + for(int i =0;i<5&&!flag;i++){//如果失败则重试,最多重试5次 + try{ + flag = true; + result = login(user); + }catch (SocketException ex){ + flag = false; + } + } + if(!flag) result = null; + return result; + + } + + /** * 以分页方式获取用户列表 * * @param params json格式的请求参数 diff --git a/src/main/java/com/casic/accessControl/user/web/UserController.java b/src/main/java/com/casic/accessControl/user/web/UserController.java index 99a7ddd..feab678 100644 --- a/src/main/java/com/casic/accessControl/user/web/UserController.java +++ b/src/main/java/com/casic/accessControl/user/web/UserController.java @@ -24,6 +24,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import java.net.SocketException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,6 +49,7 @@ User user = null; try{ user = userManager.login(userInfo); +// user = userManager.tryLogin(userInfo); }catch(Exception e){ result.put("success", false); return result; diff --git a/src/main/java/com/casic/accessControl/user/manager/UserManager.java b/src/main/java/com/casic/accessControl/user/manager/UserManager.java index 1f61647..704a5de 100644 --- a/src/main/java/com/casic/accessControl/user/manager/UserManager.java +++ b/src/main/java/com/casic/accessControl/user/manager/UserManager.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import javax.servlet.http.HttpSession; +import java.net.SocketException; import java.util.List; /** @@ -46,6 +47,28 @@ } /** + * 多次重试机制,保证mysql空闲释放的连接不报异常 + * @param user + * @return + * @throws Exception + */ + public User tryLogin(User user) throws Exception{ + User result = null; + boolean flag = false; + for(int i =0;i<5&&!flag;i++){//如果失败则重试,最多重试5次 + try{ + flag = true; + result = login(user); + }catch (SocketException ex){ + flag = false; + } + } + if(!flag) result = null; + return result; + + } + + /** * 以分页方式获取用户列表 * * @param params json格式的请求参数 diff --git a/src/main/java/com/casic/accessControl/user/web/UserController.java b/src/main/java/com/casic/accessControl/user/web/UserController.java index 99a7ddd..feab678 100644 --- a/src/main/java/com/casic/accessControl/user/web/UserController.java +++ b/src/main/java/com/casic/accessControl/user/web/UserController.java @@ -24,6 +24,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import java.net.SocketException; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -48,6 +49,7 @@ User user = null; try{ user = userManager.login(userInfo); +// user = userManager.tryLogin(userInfo); }catch(Exception e){ result.put("success", false); return result; diff --git a/src/main/resources/spring/applicationContext-hibernate.xml b/src/main/resources/spring/applicationContext-hibernate.xml index b5fb133..3f4a2a8 100644 --- a/src/main/resources/spring/applicationContext-hibernate.xml +++ b/src/main/resources/spring/applicationContext-hibernate.xml @@ -34,6 +34,9 @@ + + +