第五课 SpringBoot2基础-拦截器、文件上传、异常处理、原生组件和定制组件

tags:

  • Spring Boot
  • 2021尚硅谷
  • 雷丰阳

文章目录

  • 第五课 SpringBoot2基础-拦截器、文件上传、异常处理、原生组件和定制组件
    • 第一节 拦截器
      • 1.1 HandlerInterceptor 接口
      • 1.2 拦截器原理
    • 第二节 文件上传
      • 2.1 文件上传功能实现
      • 2.2 文件上传原理
    • 第三节 异常处理
      • 2.1 默认规则
      • 2.2 异常处理自动配置原理
      • 2.3 异常处理步骤流程
      • 2.4 定制错误处理逻辑
    • 第四节 原生组件注入(Servlet、Filter、Listener)
      • 4.1 使用Servlet API方式注入
      • 4.2 使用RegistrationBean方式注入
    • 第五节 嵌入式Servlet容器
      • 5.1 切换嵌入式Servlet容器
      • 5.2 定制Servlet容器
    • 第六节 定制化原理
      • 6.1 定制化的常见方式
      • 6.2 定制化原理分析套路

第一节 拦截器

1.1 HandlerInterceptor 接口

  1. 拦截器在底层是 HandlerInterceptor 接口有三个方法
    • preHandle 目标方法处理之前处理
    • postHandle 目标方法处理之后没有渲染页面
    • afterCompletion 页面渲染之后清理工作
  2. 使用拦截器做登陆检查
    • 创建拦截器类interceptor.LoginInterceptor去继承HandlerInterceptor
    • 创建配置类 config.AdminWebConfig 重写 addInterceptors
    • 指定拦截规则 ** 如果是拦截所有,静态资源也会被拦截**
  3. 创建拦截器类
package com.atguigu.interceptor;import lombok.extern.slf4j.Slf4j;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;/***  拦截器做登陆检查*  必须实现HandlerInterceptor接口*  1. 配置好拦截器要拦截哪些请求(AdminWebConfig中配置)*  2. 把这些配置放在容器中(重写addInterceptors)*  3. 指定拦截规则【如果是拦截所有,静态资源也会被拦截】*/
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {/*** 目标方法执行之前* @param request* @param response* @param handler* @return* @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {String requestURI = request.getRequestURI();log.info("拦截的请求路径是{}", requestURI);;// 登陆检查逻辑HttpSession session = request.getSession();Object loginUser = session.getAttribute("loginUser");if (loginUser != null){// 放行return true;}// 拦截住 没登录 跳转到登录页request.setAttribute("msg", "请先登录");// response.sendRedirect("/"); //这个取不到msg 直接转发request.getRequestDispatcher("/").forward(request, response);return false;}/*** 目标方法执行之后* @param request* @param response* @param handler* @return* @throws Exception*/@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {log.info("postHandle执行{}",modelAndView);}/*** 页面渲染之后* @param request* @param response* @param handler* @return* @throws Exception*/@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {log.info("afterCompletion执行异常{}",ex);}
}
  1. 创建配置类
package com.atguigu.config;import com.atguigu.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class AdminWebConfig implements WebMvcConfigurer {@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**") // 这种情况下所有请求都会被拦截 包括静态资源也会拦截.excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**"); //放行的请求}
}
  1. 如果不使用.excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**");放行静态资源。也可以在配置文件中配置
# 这样静态资源前都要加/static/
spring.mvc.static-path-pattern=/static/**

1.2 拦截器原理

  1. 断点mainPage中,根据当前请求,找到 HandlerExecutionChain 可以处理请求的handler以及handler的所有拦截器。
    在这里插入图片描述
  2. 目标方法执行前先执行拦截器的applyPreHandle。跟踪进去
if (!mappedHandler.applyPreHandle(processedRequest, response)) {return;
}
  1. 挨个遍历拦截器。它去调用了preHandle方法。先来顺序执行 所有拦截器的 preHandle方法
    • 如果当前拦截器prehandler返回为true。则执行下一个拦截器的preHandle
    • 如果当前拦截器返回为false。直接 倒序执行所有已经执行了的拦截器的 afterCompletion;就是把之前执行过的的清理一下而已
  2. 如果任何一个拦截器返回false。直接跳出,不执行目标方法
  3. 所有拦截器都返回True。执行目标方法
    6、倒序执行所有拦截器的postHandle方法。
    7、前面的步骤有任何异常都会直接倒序触发 afterCompletion
    8、页面成功渲染完成以后,也会倒序触发 afterCompletion
    在这里插入图片描述

第二节 文件上传

2.1 文件上传功能实现

  1. 写一个FormTestController 控制器
package com.atguigu.controller;import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;import java.io.File;
import java.io.IOException;/*** 文件上传测试*/
@Slf4j
@Controller
public class FormTestController {@GetMapping("/form_layouts")public String form_layout(){return "form/form_layouts";}/*** MultipartFile自动封装上传过来的文件* @param email* @param username* @param headerImg* @param photos* @return*/@PostMapping("/upload")public String upload(@RequestParam("email") String email,@RequestParam("username") String username,@RequestPart("headerImg") MultipartFile headerImg,@RequestPart("photos") MultipartFile[] photos) throws IOException {log.info("上传的信息: email={}, username={}, headerImg={},photos={}", email,username, headerImg.getSize(), photos.length);if (headerImg.isEmpty()){// 保存到文件服务器 或oss服务器String originalFilename = headerImg.getOriginalFilename();headerImg.transferTo(new File("D:\\" + originalFilename));}if (photos.length > 0){for (MultipartFile photo : photos){if (!photo.isEmpty()){String originalFilename = photo.getOriginalFilename();photo.transferTo(new File("D:\\" + originalFilename));}}}return "main";}
}
  1. 配置文件设置上传文件的大小
# 每个上传文件的大小设置
spring.servlet.multipart.max-file-size=10MB# 一个请求中所有文件上传大小设置
spring.servlet.multipart.max-request-size=100MB

2.2 文件上传原理

  1. ctrl + N 搜索 MultipartAutoConfiguration
    • 自动配置好了StandardServletMultipartResolver 文件上传参数解析器(只能解析Servlet方式上传的文件)
  2. 原理步骤
    • 还是从DispatcherServlet#doDispatch 追踪 processedRequest = checkMultipart(request); 如果是Multipart,把请求重新包装一下。
    • 参数解析器来解析请求中的文件内容封装成MultipartFile
    • 将request中文件信息封装为一个Map;MultiValueMap<String, MultipartFile>
      FileCopyUtils。实现文件流的拷贝

第三节 异常处理

2.1 默认规则

  1. 官方网站:https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications.spring-mvc.error-handling
  2. 默认情况下,Spring Boot提供/error处理所有错误的映射
  3. 对于机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。
  4. 对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据
  5. 自定义错误页-放到templates的error中
    • error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页

2.2 异常处理自动配置原理

  1. org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration 自动配置异常处理规则
  2. 容器中的组件一:类型:DefaultErrorAttributes -> id:errorAttributes (默认方法名作为id) 跟踪进去
    • public class DefaultErrorAttributes implements ErrorAttributes, HandlerExceptionResolver
    • DefaultErrorAttributes:定义错误页面中可以包含哪些数据属性。需要定制页面的中的属性需要定义它。
  3. 容器中的组件二:类型:BasicErrorController --> id:basicErrorController(响应json或者白页 适配响应) 点进去看到。需要定制跳转逻辑需要定义它。
    • 处理默认 /error 路径的请求;页面响应 new ModelAndView(“error”, model);
    • 容器中有组件 View->id是error;(响应默认错误页) WhitelabelErrorViewConfiguration
    • 容器中放组件 BeanNameViewResolver(视图解析器);按照返回的视图名error作为组件的id去容器中找View对象。
    • 如果想要返回页面;就会找error视图【StaticView】。(默认是一个白页)
  4. 容器中的组件三:类型:DefaultErrorViewResolver -> id:conventionErrorViewResolver 点进去看到。需要定义错误页面的路径需要定义它。
    • 如果发生错误,会以HTTP的状态码 作为视图页地址(viewName),找到真正的页面
    • error/404、5xx.html

2.3 异常处理步骤流程

  1. 执行目标方法ha.handle,目标方法运行期间有任何异常都会被catch、而且标志当前请求结束;并且用 dispatchException
  2. 进入视图解析流程(页面渲染?)
    processDispatchResult(processedRequest, response, mappedHandler, mv, dispatchException);
  3. mv = processHandlerException处理handler发生的异常,处理完成返回ModelAndView;
    • 遍历所有的 handlerExceptionResolvers,看谁能处理当前异常【HandlerExceptionResolver处理器异常解析器】
    • DefaultErrorAttributes系统默认的 异常解析器;
    • 追踪进去
      在这里插入图片描述
  4. DefaultErrorAttributes先来处理异常。把异常信息保存到rrequest域,并且返回null;默认没有任何人能处理异常,所以异常会被抛出
    • 1、如果没有任何人能处理最终底层就会发送/error请求。会被底层的BasicErrorController处理.
    • 2、解析错误视图;遍历所有的ErrorViewResolver看谁能解析。
    • 3、默认的DefaultErrorViewResolver ,作用是把响应状态码作为错误页的地址,error/500.html
    • 4、模板引擎最终响应这个页面error/500.html

2.4 定制错误处理逻辑

  1. 第一种:自定义错误页
    • error/404.html error/5xx.html;有精确的错误状态码页面就匹配精确,没有就找 4xx.html;如果都没有就触发白页
    • 400错误码:不带请求参数或者参数类型不对;Bad Request一般都是浏览器的参数没有传递正确
  2. 第二种(推荐使用):@ControllerAdvice+@ExceptionHandler处理全局异常;底层是异常处理器第二个中的第一个ExceptionHandlerExceptionResolver 支持的
package com.atguigu.exception;/** 处理整个web的controller异常*/import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;@Slf4j
@ControllerAdvice
public class GlobalExceptionHandler {@ExceptionHandler({ArithmeticException.class, NullPointerException.class}) // 异常处理器 处理异常public String handleArithException(Exception e){log.error("异常是: {}",  e);return "login"; // 视图地址}
}
  1. 第三种:**@ResponseStatus+自定义异常 **;底层是第二个中的第二个ResponseStatusExceptionResolver , 把responsestatus注解的信息底层调用 response.sendError(statusCode, resolvedReason);最终tomcat发送的/error,而这个请求同时也结束了。
    @GetMapping("/dynamic_table")public String dynamic_table(Model model){//表格内容的遍历//response.sendErrorList<User> users = Arrays.asList(new User("zhangsan", "123456"),new User("lisi", "123444"),new User("haha", "aaaaa"),new User("hehe ", "aaddd"));model.addAttribute("users",users);if(users.size()>3){throw new UserTooManyException();}return "table/dynamic_table";}
package com.atguigu.exception;import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ResponseStatus;@ResponseStatus(value= HttpStatus.FORBIDDEN,reason = "用户数量太多")
public class UserTooManyException extends RuntimeException {public  UserTooManyException(){}public  UserTooManyException(String message){super(message);}
}
  1. 第四种:Spring底层的异常,如 参数类型转换异常;第二个的第三个DefaultHandlerExceptionResolver 处理框架底层的异常。
    • response.sendError(HttpServletResponse.SC_BAD_REQUEST, ex.getMessage());
    @GetMapping("/basic_table")public String basic_table(@RequestParam("a") int a){int i = 10/0;return "table/basic_table";}
  1. 第五种: 自定义实现 HandlerExceptionResolver 处理异常 ;可以作为默认的全局异常处理规则。需要定义优先级,防止被默认异常处理器提前处理了。
package com.atguigu.exception;import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@Order(value= Ordered.HIGHEST_PRECEDENCE)  //优先级,数字越小优先级越高
@Component
public class CustomerHandlerExceptionResolver implements HandlerExceptionResolver {@Overridepublic ModelAndView resolveException(HttpServletRequest request,HttpServletResponse response,Object handler, Exception ex) {try {response.sendError(511,"我喜欢的错误");} catch (IOException e) {e.printStackTrace();}return new ModelAndView();}
}
  1. ErrorViewResolver 实现自定义处理异常;
    • response.sendError 。error请求就会转给controller
    • 你的异常没有任何人能处理。tomcat底层 response.sendError。error请求就会转给controller
    • basicErrorController 要去的页面地址是 ErrorViewResolver 解析的 ;保底的异常处理,所有没被处理的异常都会被它捕获。

第四节 原生组件注入(Servlet、Filter、Listener)

4.1 使用Servlet API方式注入

  1. 第一步:@ServletComponentScan(basePackages = "com.atguigu.admin")在启动类中添加 :指定原生Servlet组件都放在那里。推荐可以这种方式
// com.atguigu.Boot05WebAdminApplication 启动类
package com.atguigu;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;@ServletComponentScan(basePackages = "com.atguigu")
@SpringBootApplication
public class Boot05WebAdminApplication {public static void main(String[] args) {SpringApplication.run(Boot05WebAdminApplication.class, args);}}
  1. 第二步:实现下面的一种原生组件的注入。
    • @WebServlet(urlPatterns = "/my"):效果:直接响应,没有经过Spring的拦截器.
    • @WebFilter(urlPatterns={"/css/*","/images/*"})
    • @WebListener
//  WebServlet
package com.atguigu.servlet;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet(urlPatterns = "/my")
public class MyServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.getWriter().write("666666");}
}
// @WebFilter
package com.atguigu.servlet;import lombok.extern.slf4j.Slf4j;import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.annotation.WebServlet;
import java.io.IOException;@Slf4j
@WebFilter(urlPatterns = {"/css/*", "/images/*"})
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {log.info("MyFilter初始化完成;");}@Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {log.info("MyFilter工作");chain.doFilter(request, response);}@Overridepublic void destroy() {log.info("MyFilter销毁;");}
}
// WebListener
package com.atguigu.servlet;import lombok.extern.slf4j.Slf4j;import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener;@Slf4j
@WebListener
public class MySwervletContextListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent sce) {log.info("MySwervletContextListener监听到项目初始化完成");}@Overridepublic void contextDestroyed(ServletContextEvent sce) {log.info("MySwervletContextListener监听到项目销毁");}
}
  1. 扩展:DispatchServlet 如何注册进来
    • 容器中自动配置了 DispatcherServlet 属性绑定到 WebMvcProperties;对应的配置文件配置项是 spring.mvc。
    • 通过 ServletRegistrationBean<DispatcherServlet> 把 DispatcherServlet 配置进来。
    • 默认映射的是 / 路径。
# 可以修改servlet的默认路径
spring.mvc.servlet.path=/mvc/
  1. Tomcat-Servlet;多个Servlet都能处理到同一层路径,精确优选原则
    • A: /my/
    • B: /my/1

4.2 使用RegistrationBean方式注入

  1. ServletRegistrationBean, FilterRegistrationBean, and ServletListenerRegistrationBean
package com.atguigu.servlet;import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;import java.util.Arrays;/*** 1、MyServlet --> /my* 2、DispatcherServlet --> /*/
// (proxyBeanMethods = true):保证依赖的组件始终是单实例的
@Configuration(proxyBeanMethods = true)
public class MyRegistConfig {@Beanpublic ServletRegistrationBean myServlet(){MyServlet myServlet = new MyServlet();return new ServletRegistrationBean(myServlet,"/my","/my02");}@Beanpublic FilterRegistrationBean myFilter(){MyFilter myFilter = new MyFilter();
//        return new FilterRegistrationBean(myFilter,myServlet());FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(myFilter);filterRegistrationBean.setUrlPatterns(Arrays.asList("/my","/css/*"));return filterRegistrationBean;}@Beanpublic ServletListenerRegistrationBean myListener(){MySwervletContextListener mySwervletContextListener = new MySwervletContextListener();return new ServletListenerRegistrationBean(mySwervletContextListener);}
}

第五节 嵌入式Servlet容器

5.1 切换嵌入式Servlet容器

  1. 默认支持的webServer(官网手册7.4.3)
    • Tomcat, Jetty, or Undertow
    • ServletWebServerApplicationContext 容器启动寻找ServletWebServerFactory 并引导创建服务器
  2. 切换服务器(如果不想用默认Tomcat服务器, 修改下面配置 排除exclusion,加入其它服务器配置)
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><exclusions><exclusion><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId></exclusion></exclusions>
</dependency>
  1. 原理
    • SpringBoot应用启动发现当前是Web应用。web场景包-导入tomcat
    • web应用会创建一个web版的ioc容器ServletWebServerApplicationContext
    • ServletWebServerApplicationContext 启动的时候寻找 ServletWebServerFactory(Servlet 的web服务器工厂—> Servlet 的web服务器)
    • SpringBoot底层默认有很多的WebServer工厂;TomcatServletWebServerFactory, JettyServletWebServerFactory, or UndertowServletWebServerFactory
    • 底层直接会有一个自动配置类。ServletWebServerFactoryAutoConfiguration ServletWebServerFactoryAutoConfiguration 导入了ServletWebServerFactoryConfiguration(配置类)
    • ServletWebServerFactoryConfiguration 配置类 根据动态判断系统中到底导入了那个Web服务器的包。(默认是web-starter导入tomcat包),容器中就有 TomcatServletWebServerFactory
    • TomcatServletWebServerFactory 创建出Tomcat服务器并启动;TomcatWebServer 的构造器拥有初始化方法initialize—this.tomcat.start();
    • 内嵌服务器,就是手动把启动服务器的代码调用(tomcat核心jar包存在)

5.2 定制Servlet容器

  1. 实现 WebServerFactoryCustomizer<ConfigurableServletWebServerFactory>
    • 把配置文件的值和ServletWebServerFactory 进行绑定
  2. 第一种:修改配置文件 server.xxx 比如:
server.tomcat.accesslog.max-days=10
  1. 第二种:直接自定义 ConfigurableServletWebServerFactory
  2. 第三种:xxxxxCustomizer:定制化器,可以改变xxxx的默认规则

第六节 定制化原理

6.1 定制化的常见方式

  1. 修改配置文件;
  2. xxxxxCustomizer;**定制化器 **
  3. 编写自定义的配置类 xxxConfiguration;+ @Bean替换、增加容器中默认组件;视图解析器
    • Web应用 编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件
@Configuration
public class AdminWebConfig implements WebMvcConfigurer
  1. @EnableWebMvc + WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置, 比如静态资源,视图解析器,默认页面等需要自己配置; 实现定制和扩展功能
  2. 原理
    • WebMvcAutoConfiguration 默认的SpringMVC的自动配置功能类。静态资源、欢迎页等等
    • 一旦使用 @EnableWebMvc 、。会 @Import(DelegatingWebMvcConfiguration.class)
    • DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用
      • 把所有系统中的 WebMvcConfigurer 拿过来。所有功能的定制都是这些 WebMvcConfigurer 合起来一起生效
      • 自动配置了一些非常底层的组件。RequestMappingHandlerMapping、这些组件依赖的组件都是从容器中获取
      • public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport
  3. WebMvcAutoConfiguration 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
  4. @EnableWebMvc 导致了 WebMvcAutoConfiguration 没有生效。基本的已经有了默认的配置就不生效了。

6.2 定制化原理分析套路

  1. 场景starter - xxxxAutoConfiguration - 导入xxx组件 - 绑定xxxProperties – 绑定配置文件项
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 有小的字母异位词

    给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 输入: s "anagram", t "nagaram" 输出: true输入: s "rat&…...

    2024/4/6 23:44:52
  2. com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance/list after a

    错误信息 com.alibaba.nacos.api.exception.NacosException: failed to req API:/nacos/v1/ns/instance/list after all servers([localhost:8848]) tried: java.net.ConnectException: Connection refused: connectat com.alibaba.nacos.client.naming.net.NamingProxy.reqAp…...

    2024/4/17 20:44:36
  3. Mybatis最新整理笔记(正在更新)

    Mybatis 1.简介 1.1什么是Mybatis 百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了[google code](https://baike.baidu.com/item/google code/2346604)&#xff0c;并且改名为MyBatis 。2013年11月迁移到Github。i…...

    2024/4/6 23:44:52
  4. ​如何使用PowerBI建立星型模型的一些思考​

    星型模型对于BI工具来说很重要&#xff0c;一个良好的模型能够使度量的建立变得简单&#xff0c;一个良好的模型能够使报表具有更好的性能&#xff0c;一个良好的模型能够减少预期之外的错误等等 通常情况下一个星型模型对应一个分析主题&#xff0c;它由一个事实表和多个维度…...

    2024/4/20 15:35:29
  5. leetcode 找出临界点之间的最小和最大距离

    链表中的 临界点 定义为一个 局部极大值点 或 局部极小值点 。 如果当前节点的值 严格大于 前一个节点和后一个节点&#xff0c;那么这个节点就是一个 局部极大值点 。 如果当前节点的值 严格小于 前一个节点和后一个节点&#xff0c;那么这个节点就是一个 局部极小值点 。…...

    2024/4/15 8:27:53
  6. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170401

    20170401工作总结&#xff1a;昨天和今天上午优化了 Au3到Au100&#xff0c;共98个金团簇的结构&#xff0c;找出了对应的点群和能量等。然后听了吉如姐《国强则少年强》的观点&#xff0c;感觉斗志昂扬&#xff0c;满血复活。梁启超在《少年中国说》中曾说过一段话&#xff1a…...

    2024/5/6 19:58:28
  7. RoundingMode 几个参数详解

    第一版 java.math().RoundingMode里面有几个参数搞得我有点晕&#xff0c;现以个人理解对其一一进行总结&#xff1a; RoundingMode.CEILING&#xff1a;取右边最近的整数 RoundingMode.DOWN&#xff1a;去掉小数部分取整&#xff0c;也就是正数取左边&#xff0c;负数取右边…...

    2024/4/15 8:27:38
  8. SRE运维工程师笔记-Linux基础入门

    SRE运维工程师笔记-Linux基础入门1. Linux基础1.1 用户类型1.2 终端terminal1.2.1 终端类型1.2.2 查看当前的终端设备1.3 交互式接口1.3.1 交互式接口类型1.3.2 什么是shell1.3.3 各种shell1.3.4 bash shell1.4 设置主机名1.5 命令提示符 prompt1.6 执行命令1.6.1 执行命令过程…...

    2024/4/15 8:27:33
  9. 写的jdbc工具类,前期写了测试正确,但发布到tomcat中就报这样的错误。

    java.lang.NoClassDefFoundError: Could not initialize class util.JDBCUtil&#xff0c;他说找不到这样的类&#xff0c;那就是缺少了你写的该类&#xff0c;将该类复制粘贴到tomcat下的lib就行了&#xff0c;再不行的话就将mysql连接的jar包也放进去...

    2024/4/15 8:27:53
  10. 学长毕业日记 :本科毕业论文写成博士论文的神操作20170331

    20170331工作总结&#xff1a;今天计算了分子的态密度&#xff0c;也优化了一些分子的结构。另外自己开发了两个个机器人“小小度”和“小阳阳”&#xff0c;通过我的机器学习后&#xff0c;更加聪明了&#xff0c;增加了好多好多功能模块。通过不断地训练&#xff0c;不断地进…...

    2024/4/18 17:00:36
  11. 二分查找算法

    二分查找算法 前提&#xff1a;有序数组 首先确定整个查找区间的中间位置 mid strat(end-strat)/2用待查关键字key值与中间位置的关键字值进行比较&#xff1b;若相等&#xff0c;则查找成功若大于&#xff0c;则在后&#xff08;右&#xff09;半个区域继续进行折半查找若小…...

    2024/4/15 8:27:38
  12. L1-014简单题

    输入样例&#xff1a; 无 结尾无空行 输出样例&#xff1a; This is a simple problem. 结尾无空行 #include <stdio.h> int main() { printf("This is a simple problem."); return 0; }...

    2024/4/21 10:25:58
  13. 1067 试密码 (20 分) javascript

    当你试图登录某个系统却忘了密码时&#xff0c;系统一般只会允许你尝试有限多次&#xff0c;当超出允许次数时&#xff0c;账号就会被锁死。本题就请你实现这个小功能。 输入格式&#xff1a; 输入在第一行给出一个密码&#xff08;长度不超过 20 的、不包含空格、Tab、回车的…...

    2024/4/15 8:27:53
  14. 文件和目录

    大纲目录和文件获取文件属性stat函数返回值文件访问权限umask文件权限更改&#xff1a;chmod、fchmod粘着位&#xff08;t位&#xff09;文件系统&#xff1a;FAT、UFS硬链接和符号链接目录的创建和销毁&#xff1a;mkdir、rmdir&#xff08;只能删除空目录&#xff09;更改当前…...

    2024/4/19 1:09:20
  15. 窗口 (第二题)

    3198. 窗口 - AcWing题库 每次点击完之后把点击的那个窗口放到数组末尾。 #include <bits/stdc.h> using namespace std;const int N 20;struct window{int x1,y1,x2,y2;int id; }a[N];int n,m;int get(int x,int y)//这里单独用函数处理好写 {for(int in;i;i--){if(x…...

    2024/4/6 23:44:42
  16. SSM案例-企业权限系统(17)- 用户关联角色

    1 用户关联角色1.1 页面1.2 DAO public interface IUserDao {@Select("select * from role where id not in" +"(select roleId from users_role where userId = #{userId})")List<Role> findOtherRoles(String userId) throws Exception;// 多个参数…...

    2024/5/6 19:04:40
  17. 学C语言的第二天

    1.首先&#xff0c;接上篇先就解释下:今天下午刚刚看了书发现注释的两种方法&#xff0c;我用的那种似乎不太对。 更正如下: //..... //..... 这种注释方法范围为每行。 /*.. .... ..*/ 这种注释方法则可多行。 2.学的第二个编程&#xff1a;加法 学这个我不太理解&#xff1…...

    2024/4/15 8:27:48
  18. BUUCTF - web - PingPingPing+Knife+Http

    文章目录前言PingPingPing分析构造payload其他方法白给的shellHttpRepeater前言 已经坚持了半个月了&#xff0c;有十多天一直在写杂项&#xff0c;直到学长委婉地告诉我杂项没啥技术性&#xff0c;就流量分析有点用&#xff0c;建议我学pwn&#xff0c;所以这几天我开始做web…...

    2024/4/16 11:16:43
  19. git 提交报ESLint couldn‘t find a configuration file

    忽略检测 git commit --no-verify -m "commit"...

    2024/4/28 10:08:23
  20. token身份验证,解决refresh_token多次刷新问题

    基于Token的身份验证的基本过程如下: 1.用户通过用户名和密码发送请求。 2.服务器端程序验证。 3.服务器端程序返回一个带签名的token给客户端。 4.客户端储存token,并且每次访问都携带token到服务器端的。 5.服务端验证token&#xff0c;校验成功则返回请求数据&#xff…...

    2024/4/19 16:02:59

最新文章

  1. JavaScript自定义构造函数

    在JavaScript中&#xff0c;我们可以使用构造函数来创建自定义对象。构造函数是一个特殊的函数&#xff0c;用于创建和初始化对象。 构造函数通过new关键字来调用&#xff0c;它会创建一个新的空对象&#xff0c;并将这个新对象作为构造函数的上下文&#xff08;即this&#x…...

    2024/5/6 22:20:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. Spring学习(四)反射、AOP、JUnit

    文章目录 Java反射回顾 AOP代理模式AOP概念及术语概述术语作用 基于注解的AOP步骤依赖配置文件切入点表达式语法切面类重用切入点表达式切面的优先级 基于XML的AOP 单元测试JUnit引入依赖JUnit5 Java反射 Spring框架的IoC基于java反射机制实现&#xff0c;反射是指在运行状态中…...

    2024/5/6 22:04:07
  4. Redis -- 缓存雪崩问题

    缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机&#xff0c;导致大量请求到达数据库&#xff0c;带来巨大压力。 可能原因 : 同一时间大量的key到期 ; 解决方案&#xff1a; 给不同的Key的TTL添加随机值 利用Redis集群提高服务的可用性 给缓存业务添加降…...

    2024/5/5 8:32:50
  5. CentOS 7查看磁盘空间

    CentOS如何查看硬盘大小&#xff1f; CentOS是一种基于Linux的操作系统&#xff0c;主要用于服务器端应用。在服务器管理中&#xff0c;硬盘大小是一个非常重要的指标&#xff0c;查看硬盘大小可以帮助系统管理员有效地管理硬盘空间和避免硬盘满了的情况。 方法一&#xff1a…...

    2024/5/5 0:26:36
  6. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  7. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  8. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  9. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  10. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  11. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  12. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  13. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  14. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  15. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  16. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  17. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  18. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  19. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  20. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  21. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  22. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  23. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  24. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  25. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  26. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  27. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  28. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  29. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  30. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  31. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  32. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  33. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  34. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  35. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  36. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  37. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  38. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  39. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  40. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  41. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  42. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  43. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  44. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  45. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57