@Component
@ManagedResource(objectName = "springMVC2.com.jmx:name=UserStatistics", description = "User Statistics in register")
public class UserStatisticsMBean {
@Autowired
UserService userService;
private int usernum;
@ManagedAttribute(description = "Count user in learnjdbc.user from DataBase")
public int getUserNum() {
usernum=userService.countUsers();
return usernum;
}
}
2. RegisterInterceptor
@Component
public class RegisterInterceptor implements HandlerInterceptor {
final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
UserStatisticsMBean userStatisticsMBean;
净净一隅
设计在注册成功后统计用户数量
1. UserStatisticsMBean
@Component
@ManagedResource(objectName = "springMVC2.com.jmx:name=UserStatistics", description = "User Statistics in register")
public class UserStatisticsMBean {
@Autowired
UserService userService;
private int usernum;
@ManagedAttribute(description = "Count user in learnjdbc.user from DataBase")
public int getUserNum() {
usernum=userService.countUsers();
return usernum;
}
}
2. RegisterInterceptor
@Component
public class RegisterInterceptor implements HandlerInterceptor {
final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
UserStatisticsMBean userStatisticsMBean;
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
logger.info("postHandle {}.", request.getRequestURI());
if (modelAndView != null) {
userStatisticsMBean.getUserNum();
}
}
}
3. InterceptorsConfig
@Configuration
public class InterceptorsConfig {
@Bean
WebMvcConfigurer createInterceptorsConfigure(@Autowired HandlerInterceptor[] interceptors) {
return new WebMvcConfigurer() {
public void addInterceptors(InterceptorRegistry registry) {
for (HandlerInterceptor interceptor : interceptors) {
if(interceptor instanceof AuthInterceptor ){
registry.addInterceptor(interceptor).addPathPatterns("/user/profile");
continue;
}
if(interceptor instanceof LoggerInterceptor ){
registry.addInterceptor(interceptor).addPathPatterns("/api/**");
continue;
}
if(interceptor instanceof RegisterInterceptor){
registry.addInterceptor(interceptor).addPathPatterns("/register");
continue;
}
registry.addInterceptor(interceptor);
}
}
};
}
}