基于springboot和shiro的整合

准备工作,首先创建springboot项目:
1:首先防止下载慢的问题,将地址换成https://start.aliyun.com
在这里插入图片描述
2:一路next下去:
在这里插入图片描述
3:勾选对应的选项,然后在next,直接finish:
在这里插入图片描述

添加pom依赖:

<!--shiro的依赖--><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.4.2</version></dependency><!-- thymeleaf依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!--shrio和thymeleaf集成的扩展依赖,为了能在页面上使用xsln:shrio的标签 --><dependency><groupId>com.github.theborakompanioni</groupId><artifactId>thymeleaf-extras-shiro</artifactId><version>2.0.0</version></dependency><!--druid数据源--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.21</version></dependency><!--分页插件--><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.13</version></dependency><!--aop--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!--fastjson--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.60</version></dependency>

在resources下面的创建.yml配置文件

server:port: 8080
spring:datasource: #数据源配置driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/shiro?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTCusername: rootpassword: 123456druid:max-active: 10min-idle: 5max-wait: 5000initial-size: 5validation-query: select 1#druid监控页面配置stat-view-servlet:enabled: truelogin-username: adminlogin-password: adminallow:deny:url-pattern: "/druid/*"thymeleaf:cache: false
#mybatis的配置
mybatis:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplmapper-locations:- classpath:mapper/ *Mapper.xml
#shiro的配置
shiro:hash-algorithm-name: md5hash-iterations: 2#未登录跳转的页面#login-url: /index.html#未授权跳转的页面#unauthorized-url: /unauthorized.html#设置放行页面,这里是登录页面和去登录的页面都是放行的,不进行shiro验证anon-urls:- /index.html*- /login.html*- /login/toLogin*- /login/login*#配置登出后页面logout-url: /login/logout*#配置拦截需要验证的页面authc-urls:- /**

建一个filter的包,自己创建一个过滤器

若没登录就进入主页面的情况,会回调onAccessDenied方法,那我们可以重写这个方法用来提醒前端。

public class ShiroLoginFilter  extends FormAuthenticationFilter {@Overrideprotected boolean onAccessDenied(ServletRequest request, ServletResponse response) throws Exception {HttpServletResponse httpServletResponse = (HttpServletResponse) response;//if (isAjax(request)) {httpServletResponse.setCharacterEncoding("UTF-8");httpServletResponse.setContentType("application/json");Map<String,Object> resultData = new HashMap<>();resultData.put("code", -1);resultData.put("msg", "未登录!");httpServletResponse.getWriter().write(JSONObject.toJSON(resultData).toString());/*	} else {// saveRequestAndRedirectToLogin(request, response);*//*** @Mark 非ajax请求重定向为登录页面*//*httpServletResponse.sendRedirect("/login.jsp");}*/return false;}private boolean isAjax(ServletRequest request) {String header = ((HttpServletRequest) request).getHeader("X-Requested-With");if ("XMLHttpRequest".equalsIgnoreCase(header)) {return Boolean.TRUE;}return Boolean.FALSE;}
}

建一个aspect的包,写一个监控控制器异常的类AppExceptionAdivse

这个类用来监控权限,他相当于一个aop,所以我们也引进了aop的包,如果访问了没有授权的页面,则会抛出异常UnauthorizedException,因为我们没有配置未登录后跳转的页面,而是返回一个json来通知前段,这样做到了前后端的分离。

@RestControllerAdvice //以json串的形式返回出去,全局的异常监控,类似于切面
public class AppExceptionAdivse {//监控是否抛出未授权的异常UnauthorizedException@ExceptionHandler(value= {UnauthorizedException.class})public Map<String, Object> unauthorized() {Map<String, Object> map=new HashMap<>();map.put("code", 302);map.put("msg", "未授权");System.out.println("未授权");return map;}}

建一个名叫config的包用来写shiro的配置类

对于以上由于springboot没有web.xml文件和.xml配置文件,我们可以用配置类的方式来写。
1:首先写第一个类ShiroProperties,把.yml的shiro配置引入。

@ConfigurationProperties(prefix = "shiro")  //注入.yml文件前缀是shiro的属性
@Data  //给该类get和set方法
public class ShiroProperties {private String hashAlgorithmName="md5";private Integer hashIterations=2;private String loginUrl;private String unauthorizedUrl;private String [] anonUrls;private String  logoutUrl;private String [] authcUrls;}

2.在同一个包下写一个配置类ShiroAutoConfiguration,这里相当于把.xml的配置,把以上写好的数据注入到里面:

@Configuration  //声明是配置类
@EnableConfigurationProperties(ShiroProperties.class)  //引入ShiroProperties.class
public class ShiroAutoConfiguration {@Autowiredprivate ShiroProperties shiroProperties;/*** 创建凭证匹配器*/@Beanpublic HashedCredentialsMatcher credentialsMatcher(){HashedCredentialsMatcher credentialsMatcher=new HashedCredentialsMatcher();credentialsMatcher.setHashAlgorithmName(shiroProperties.getHashAlgorithmName());credentialsMatcher.setHashIterations(shiroProperties.getHashIterations());return  credentialsMatcher;}/*** 创建realm*/@Beanpublic UserRealm userRealm(CredentialsMatcher credentialsMatcher){UserRealm userRealm=new UserRealm();//注入凭证匹配器userRealm.setCredentialsMatcher(credentialsMatcher);return userRealm;}/*** 声明安全管理器*/@Bean("securityManager")public SecurityManager securityManager(UserRealm userRealm){DefaultWebSecurityManager securityManager=new DefaultWebSecurityManager();securityManager.setRealm(userRealm);return  securityManager;}/*** 配置过滤器 Shiro 的Web过滤器 id必须和web.xml里面的shiroFilter的 targetBeanName的值一样*/@Bean("shiroFilter")public ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager){ShiroFilterFactoryBean bean=new ShiroFilterFactoryBean();//注入安全管理器bean.setSecurityManager(securityManager);//注入登陆页面bean.setLoginUrl(shiroProperties.getLoginUrl());//注入未授权的页面地址bean.setUnauthorizedUrl(shiroProperties.getUnauthorizedUrl());//注入过滤器Map<String, String> filterChainDefinition=new HashMap<>();//注入放行地址if(shiroProperties.getAnonUrls()!=null&&shiroProperties.getAnonUrls().length>0){String[] anonUrls = shiroProperties.getAnonUrls();for (String anonUrl : anonUrls) {filterChainDefinition.put(anonUrl,"anon");}}//注入登出的地址if(shiroProperties.getLogoutUrl()!=null){filterChainDefinition.put(shiroProperties.getLogoutUrl(),"logout");}//注拦截的地址String[] authcUrls = shiroProperties.getAuthcUrls();if(authcUrls!=null&&authcUrls.length>0){for (String authcUrl : authcUrls) {filterChainDefinition.put(authcUrl,"authc");}}bean.setFilterChainDefinitionMap(filterChainDefinition);//创建自定义filter,这个就是上面自定义的过滤器,ShiroLoginFilter用来判断权限ShiroLoginFilter filter=new ShiroLoginFilter() ;Map<String, Filter> map=new HashMap<>( ) ;map. put ("authc", filter) ;bean. setFilters(map) ;return bean;}//以下相当于在web.xml的配置/*** 注册过滤器*/@Beanpublic FilterRegistrationBean<DelegatingFilterProxy> filterRegistrationBeanDelegatingFilterProxy(){FilterRegistrationBean<DelegatingFilterProxy> bean=new FilterRegistrationBean<>();//创建过滤器,注入上面出现的bean,名字保持一样DelegatingFilterProxy proxy=new DelegatingFilterProxy();bean.setFilter(proxy);bean.addInitParameter("targetFilterLifecycle","true");bean.addInitParameter("targetBeanName","shiroFilter");
//        bean.addUrlPatterns();List<String> servletNames=new ArrayList<>();servletNames.add(DispatcherServletAutoConfiguration.DEFAULT_DISPATCHER_SERVLET_BEAN_NAME);bean.setServletNames(servletNames);return bean;}/*** 这里是为了能在html页面引用shiro标签,上面两个函数必须添加,不然会报错*/@Bean(name = "shiroDialect")public ShiroDialect shiroDialect() {return new ShiroDialect();}/*加入注解的使用,不加入这个注解不生效--开始*//**** @param securityManager* @return*///自己写的异常监听器的扫描@Beanpublic AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor = new AuthorizationAttributeSourceAdvisor();authorizationAttributeSourceAdvisor.setSecurityManager(securityManager);return authorizationAttributeSourceAdvisor;}@Beanpublic DefaultAdvisorAutoProxyCreator getDefaultAdvisorAutoProxyCreator() {DefaultAdvisorAutoProxyCreator advisorAutoProxyCreator=new DefaultAdvisorAutoProxyCreator();advisorAutoProxyCreator.setProxyTargetClass(true);return advisorAutoProxyCreator;}/*加入注解的使用,不加入这个注解不生效--结束*/
}

以上配置好之后,建一个realm包,写UserRealm类

这个类用来执行提交过来的用户名和密码的校验和权限角色的校验。

public class UserRealm extends AuthorizingRealm {@Autowiredprivate UserService userService;@Autowiredprivate RoleService roleService;@Autowiredprivate PermissionService permissionService;@Overridepublic String getName() {return this.getClass().getSimpleName();}/*** 作认证*/@Overrideprotected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken token) throws AuthenticationException {// 得到用户名String username = token.getPrincipal().toString();// 根据用户名查询用户对象User user = userService.queryUserByUserName(username);if (null != user) {ActiverUser activerUser = new ActiverUser();activerUser.setUser(user);// 根据用户名查询角色List<String> roles = roleService.queryRoleByUserId(user.getUserid());// 根据用户名查询权限List<String> permissions = permissionService.queryPermissionByUserId(user.getUserid());activerUser.setRoles(roles);activerUser.setPermissions(permissions);ByteSource credentialsSalt = ByteSource.Util.bytes(user.getUsername() + user.getAddress());/*** 参数1传输对象 可以传到doGetAuthorizationInfo 也可以传到subject.getPrincipal() 参数2 加密后的字符串* 参数3 盐 参数4 当前类名*/SimpleAuthenticationInfo info = new SimpleAuthenticationInfo(activerUser, user.getUserpwd(),credentialsSalt, getName());return info;}return null;}/*** 作授权*/@Overrideprotected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {ActiverUser activerUser = (ActiverUser) principals.getPrimaryPrincipal();SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();// 根据用户名查询角色List<String> roles = activerUser.getRoles();// 根据用户名查询权限List<String> permissions = activerUser.getPermissions();if (null != roles && roles.size() > 0) {info.addRoles(roles);}if (null != permissions && permissions.size() > 0) {info.addStringPermissions(permissions);}return info;// 如果返回空,代表当前主体没有任何角色和权限信息}}

因为每次匹配角色和权限时,都会调用一次doGetAuthorizationInfo方法,如果用这个方法来确认该用户的角色和权限,那么每一次都会访问一下数据库,会造成不必要的浪费,那我们可以在第一次做用户密码认证的时候将其全部查出来放在一个ActiverUser 类里面,这样就可以查一次解决下面的问题了。

建一个common的包,写ActiverUser 类:

public class ActiverUser {private User user;  //存用户对象,用户对象包含用户名密码等字段private List<String> roles;  //存角色private List<String> permissions;   //存权限public ActiverUser() {// TODO Auto-generated constructor stub}public ActiverUser(User user, List<String> roles, List<String> permissions) {super();this.user = user;this.roles = roles;this.permissions = permissions;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public List<String> getRoles() {return roles;}public void setRoles(List<String> roles) {this.roles = roles;}public List<String> getPermissions() {return permissions;}public void setPermissions(List<String> permissions) {this.permissions = permissions;}}

建一个controller包,写登录控制器LoginController和用户控制器UserController

LoginController:

@RestController
@RequestMapping("login")
public class LoginController {/*** 登陆*/@RequestMapping("login")public Map<String,Object> login(String username,String password,HttpSession session) {Map<String,Object> map=new HashMap<>();//封装tokenUsernamePasswordToken	 token=new UsernamePasswordToken(username, password);//得到主体Subject subject = SecurityUtils.getSubject();try {//这个方法会调用realm里面的认证来处理用户名和密码subject.login(token); //获取返回的user对象,若返回空的情况,shiro会抛出用户名和密码不正确的父异常AuthenticationException ActiverUser activerUser = (ActiverUser) subject.getPrincipal();session.setAttribute("user", activerUser.getUser());map.put("code", 200);map.put("msg", "登陆成功");return map;} catch (AuthenticationException e) {e.printStackTrace();map.put("code", -1);map.put("msg", "登陆失败 用户名或密码不正确");return map;}}	
}

usercontroller:

@RestController
@RequestMapping("user")
public class UserController {//要求subject中必须同时含有user:query的权限才能执行方法。否则抛出异常AuthorizationException,这里才体现了上面的监控异常处理器的作用。@RequiresPermissions(value= {"user:query"})@RequestMapping("query")public Map<String,Object> query() {Map<String,Object> map=new HashMap<>();map.put("msg", "query");return map;}@RequiresPermissions(value= {"user:add"})@RequestMapping("add")public Map<String,Object> add() {Map<String,Object> map=new HashMap<>();map.put("msg", "add");return map;}@RequiresPermissions(value= {"user:update"})@RequestMapping("update")public Map<String,Object> update() {Map<String,Object> map=new HashMap<>();map.put("msg", "update");return map;}@RequiresPermissions(value= {"user:delete"})@RequestMapping("delete")public Map<String,Object> delete() {Map<String,Object> map=new HashMap<>();map.put("msg", "delete");return map;}@RequiresPermissions(value= {"user:export"})@RequestMapping("export")public Map<String,Object> export() {Map<String,Object> map=new HashMap<>();map.put("msg", "export");return map;}
}

这样整体功能整合完毕了
下面是实体类domain,和service,mapper的写法:

建一个domain的包

User:

public class User {private Integer userid;private String username;private String userpwd;private String sex;private String address;public Integer getUserid() {return userid;}public void setUserid(Integer userid) {this.userid = userid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username == null ? null : username.trim();}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd == null ? null : userpwd.trim();}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex == null ? null : sex.trim();}public String getAddress() {return address;}public void setAddress(String address) {this.address = address == null ? null : address.trim();}
}

Role:

public class Role {private Integer roleid;private String rolename;public Integer getRoleid() {return roleid;}public void setRoleid(Integer roleid) {this.roleid = roleid;}public String getRolename() {return rolename;}public void setRolename(String rolename) {this.rolename = rolename == null ? null : rolename.trim();}
}

Permission :

public class Permission {private Integer perid;private String pername;private String percode;public Integer getPerid() {return perid;}public void setPerid(Integer perid) {this.perid = perid;}public String getPername() {return pername;}public void setPername(String pername) {this.pername = pername == null ? null : pername.trim();}public String getPercode() {return percode;}public void setPercode(String percode) {this.percode = percode == null ? null : percode.trim();}
}

Service包

userservice:

public interface UserService {/*** 根据用户ID查询用户对象*/public User queryUserByUserName(String username);
}

userserviceimpl:

@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic User queryUserByUserName(String username) {return userMapper.queryUserByUserName(username);}
}

RoleService:

public interface RoleService {/*** 根据用户名查询用户角色列表*/public List<String> queryRoleByUserId(Integer userId);
}

RoleServiceimpl:

@Service
public class RoleServiceImpl implements RoleService {@Autowiredprivate RoleMapper roleMapper;@Overridepublic List<String> queryRoleByUserId(Integer userId) {List<Role> list = roleMapper.queryRolesByUserId(userId);List<String> roles=new ArrayList<String>();for (Role role : list) {roles.add(role.getRolename());}return roles;}}

PermissionService:

public interface PermissionService {/*** 根据用户ID查询用户权限列表*/public List<String> queryPermissionByUserId(Integer userId);
}

PermissionServiceimpl:

@Service
public class PermissionServiceImpl implements PermissionService {@Autowiredprivate PermissionMapper permissionMapper;@Overridepublic List<String> queryPermissionByUserId(Integer userId) {List<Permission> list = permissionMapper.queryPermissionByUserId(userId);List<String> permissions=new ArrayList<>();for (Permission permission : list) {permissions.add(permission.getPercode());}return permissions;}}

建立一个mapper包

UerMapper:

public interface UserMapper {/*** 根据用户名查询用户对象*/User queryUserByUserName(@Param("username") String username);}

RoleMapper:

public interface RoleMapper {/*** 根据用户ID查询角色* 1,如果只有一个参数,可以不加   怎么取?#{userId}    #{saddfasdfasd}* 2,如果有多个参数 [如何区分]  * 			1,注解 @Param("userId")*          2, #{param1}   #{param2}      #{1}  @{2}*/List<Role> queryRolesByUserId(@Param("userId") Integer userId);
}

PermissionMapper:

public interface PermissionMapper {/*** 根据用户ID查询权限*/List<Permission> queryPermissionByUserId(Integer userId);
}

在resource下面建一个mapper,这是来装映射的xml

UserMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.mapper.UserMapper"><resultMap id="BaseResultMap" type="com.sxt.domain.User"><id column="userid" jdbcType="INTEGER" property="userid" /><result column="username" jdbcType="VARCHAR" property="username" /><result column="userpwd" jdbcType="VARCHAR" property="userpwd" /><result column="sex" jdbcType="VARCHAR" property="sex" /><result column="address" jdbcType="VARCHAR" property="address" /></resultMap><sql id="Base_Column_List">userid, username, userpwd, sex, address</sql><!-- 根据用户名查询用户 --><select id="queryUserByUserName"  resultMap="BaseResultMap">select <include refid="Base_Column_List" />from userwhere username = #{username}</select>
</mapper>

RoleMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.mapper.RoleMapper"><resultMap id="BaseResultMap" type="com.sxt.domain.Role"><id column="roleid" jdbcType="INTEGER" property="roleid" /><result column="rolename" jdbcType="VARCHAR"property="rolename" /></resultMap><!-- 根据用户ID查询角色 --><select id="queryRolesByUserId" resultMap="BaseResultMap">select t1.* from role t1 inner join user_role t2 on(t1.roleid=t2.roleid)where t2.userid=#{userId}</select>
</mapper>

PermissionMapper.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.sxt.mapper.PermissionMapper"><resultMap id="BaseResultMap"type="com.sxt.domain.Permission"><id column="perid" jdbcType="INTEGER" property="perid" /><result column="pername" jdbcType="VARCHAR" property="pername" /><result column="percode" jdbcType="VARCHAR" property="percode" /></resultMap><!-- 根据用户ID查询权限 --><select id="queryPermissionByUserId" resultMap="BaseResultMap">select distinct t1.* from permission t1 inner join role_permission t2 innerjoin user_role t3on(t1.perid=t2.perid and t2.roleid=t3.roleid) where t3.userid=#{userId}</select>
</mapper>

最后在启动类上加注解扫描一下mapper,就可以测试了:

启动类:

@SpringBootApplication
@MapperScan(basePackages = {"com.sxt.mapper"}) //扫描mapper
public class ShiroApplication {public static void main(String[] args) {SpringApplication.run(ShiroApplication.class, args);}
}

上数据库:

在这里插入图片描述
user:
在这里插入图片描述
permission:
在这里插入图片描述
role:
在这里插入图片描述
user_role:
在这里插入图片描述
role_permission:
在这里插入图片描述
由上述关系可以看出zhangsan除了export导出权限全部拥有,我们进行测试:

登录成功测试:

http://localhost:8080/login/login?username=zhangsan&password=123456
在这里插入图片描述

成功后我们访问张三的权限delete:

http://localhost:8080/user/delete
在这里插入图片描述
访问成功

访问张三的没有的权限export:

http://localhost:8080/user/export
在这里插入图片描述
访问失败

登录失败

http://localhost:8080/login/login?username=zhangsan&password=12345
在这里插入图片描述

没有登录后访问权限页面

在这里插入图片描述

总结:

这里测试就全部成功了,分析一下过程,首先配置了登录会给放行不通过shiro,这样前端会给后端传过来用户名和密码,调用login方法后会调用realm包的类来进行认证,认证通过会查询数据库将所有的信息封装在ActiverUser,失败会抛出异常,返回给前端用户名密码不正确的json,如果访问该用户没有授权的页面,注解@RequiresPermissions起到作用会抛出异常,返回给前端对应的json。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 强化学习介绍

    强化学习介绍 从本质上看,强化学习是一个通用的问题解决框架,其核心思想是 Trial & Error。 强化学习可以用一个闭环示意图来表示强化学习四元素策略(Policy):环境的感知状态到行动的映射方式。 反馈(Reward):环境对智能体行动的反馈。 价值函数(Value Function)…...

    2024/4/16 5:35:38
  2. 闲鱼引流是什么?懂得这些就够了

    闲鱼引流是什么?懂得这些就够了 现在大家有事没事都会逛逛闲鱼平台,看看有没自己喜欢的东西,许多的投资者将目光放向闲鱼平台,通过闲鱼来引流,那么闲鱼引流是什么?如何引流?想了解的伙伴请跟小编一起往下看看吧。 闲鱼引流是什么?懂得这些就够了 闲鱼是阿里巴巴旗下闲置…...

    2024/4/17 23:45:29
  3. 企业计算机网络安全威胁及措施

    摘要:随着信息技术的不断发展,各行各业早已迎来了互联网+时代,计算机网络技术得到了广泛传播,在工作中扮演着重要角色,极大的提高了工作效率。而随着计算机网络的发展,计算机互联网应用的不断拓展,安全性问题成了人们日益关注的焦点,越来越多企业因为网络安全问题受到经…...

    2024/4/18 16:39:07
  4. Explaining and Harnessing Adversarial Examples

    Explaining and Harnessing Adversarial Examples 包括神经网络在内的一些机器学习模型,始终对对抗性样本进行错误分类–通过对数据集中的例子应用小的但有意的最坏情况下的扰动形成的输入,这样扰动的输入导致模型以高置信度输出一个错误的答案。早期解释这种现象的尝试集中在…...

    2024/4/16 5:35:53
  5. 关于开源无线路由器的资料

    一、无线路由器与无线AP的区别(资料来源:详谈无线路由器与无线AP的区别)AP为Access Point简称,一般翻译为“访问节点”,无线AP主要是提供无线工作站对有线局域网和从有线局域网对无线工作站的访问,在访问接入点覆盖范围内的无线工作站可以通过它进行相互通信。通俗的讲,…...

    2024/4/4 20:28:03
  6. mongodb之远程连接

    零,前言 想实现在服务器部署mongodb数据库,同时在本地进行访问。 结果网上的资料比较乱,还好最后实现了,在此记录一下,方便以后查看。一,Linux和windowsLinux版首先下载 wget 下载地址linux版本mongodb查看解压 tar -xvzf 文件名 //解压 mv mongodb /usr/local/ //将解…...

    2024/4/18 14:36:00
  7. Week1.7-盈利率/效率指标-酒店房间

    Profitability/Efficiency Metrics: Hotel Room Occupancy Optimization 不是所有的库存中的消耗性资产都是传统意义上的摆放在架子上的产品,有两个很重要的例子是航空票务和酒店房间。以下说明为什么这些可以被看做是完全浪费型的资产。 消耗性资产wasting assets 沉没成本su…...

    2024/4/16 5:36:54
  8. UE4 AdvanceVehicleSystem文档翻译

    AdvanceVehicleSystem文档翻译一、项目设置:ProjectSetting1.MIN/MAX CONTACT SETTINGS2.MAX TERMINAL AND ANGULAR VELOCITIES二、创造一辆汽车Step 0:前置条件Step 1: 绑定输入按键Step 2: 创建汽车基类2.1 创建一个基于Vehicle_Base的蓝图2.2 打开蓝图并创建springarm和cam…...

    2024/4/22 21:04:43
  9. 飞机大战小游戏

    飞机大战小游戏 1.功能描述 (1)游戏界面绘制:设置游戏的名称为“飞机大战小游戏”,游戏窗口的大小为512*768像素,在屏幕中居中显示;添加游戏背景,当重新开始一局游戏时,从上传的四个背景中随机显示一张,作为战斗场景。 (2)鼠标移动读取与判别:创建鼠标监听器,创建…...

    2024/4/16 5:36:24
  10. 12、【易混淆概念集】-第六章3 资源平衡 VS 资源平滑 进度压缩 制定进度计划 定义活动 里程碑清单

    讲主要介绍PMBOK第六章中的重要知识点,帮助你进一步理解。本节目录一、资源平衡 VS 资源平滑二、进度压缩三、制定进度计划四、定义活动五、里程碑清单一、资源平衡 VS 资源平滑资源平衡【出处】PMBOK P211,6.5.2.3 资源优化。为了在资源需求与资源供给之间取得平衡,根据资源…...

    2024/4/19 14:58:00
  11. Metashape (PhotoScan) 各种资源汇总

    再好的教程也不如去官网逛逛来得实在:https://www.agisoft.com/官网里面啥都有的,入门教程、软件下载、python模块下载等等。对于想通过python脚本来进行自动化处理的同学,可以去看看官方的博客:https://agisoft.freshdesk.com/support/solutions/folders/31000114192这里面…...

    2024/4/16 5:36:29
  12. c++小游戏

    c++小游戏:打怪兽 话不多说,直接上代码!!! #include<bits/stdc++.h> #include<conio.h> #include<windows.h> using namespace std; double shanghai[20]={0.6,1.1,2,3.16,5.5,7,10,20,50,100,146.23,254.13,312,403,601,1023}; double bosshealth[20]=…...

    2024/4/20 0:40:23
  13. 1.安装编译软件(keil)

    1.安装编译软件(keil) 1.安装编译软件(keil)1.安装编译软件(keil)1.1 keil C51安装1.2 如何破解Keil?1.2 如何破解Keil? 1.1 keil C51安装 1.2 如何破解Keil? 第一步: keil C51安装 打开光盘keil的文件夹(没有下载我提供一个下载的) 你们可以百度下载 推荐下载公众号…...

    2024/4/16 5:36:54
  14. Laya 入坑学习(unity web版 加载真的坑,没办法只能换)

    新手学习教程:https://ke.qq.com/course/391284?taid=3286667889080436#term_id=100466700技术文档:https://ldc2.layabox.com/doc/?nav=zh-js-8-0-2LayaAir3D由U3D导入模型及注意事项:https://blog.csdn.net/Tel17610887670/article/details/93975705https://blog.csdn.n…...

    2024/4/18 8:38:44
  15. selenium自动化测试实践(一)

    最近在跟着B站上白月黑羽的视频搞selenium的学习,边学边做做记录吧。1、不完整或错误的账号密码登录:from selenium import webdriver# 创建 WebDriver 对象,指明使用chrome浏览器驱动 wd = webdriver.Chrome(rD:\ChromeDriver\chromedriver.exe)# 调用WebDriver 对象的get方…...

    2024/4/16 5:36:59
  16. 细谈八种架构设计模式机器优缺点概述

    一、什么是架构 我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。架构文档s…...

    2024/4/22 15:50:00
  17. 针对家庭用户的6个物联网提示

    早在以色列安全公司JSOF上月发现物联网设备存在“Ripple20”漏洞之前,业界就已经在推动物联网制造商在安全方面做更多工作。但是进展仍然缓慢。在立法方面,只有两个州(加利福尼亚州和俄勒冈州)通过了立法使物联网制造商难以使用简单的默认密码。因此,对于大多数家庭用户来…...

    2024/4/16 5:37:20
  18. 什么样的AI中台算是一个好中台

    近几年,人工智能从研究领域进入到实用领域的步伐越来越快,越来越多的场景可以并需要实用人工智能技术提高效益。在AI的实用化阶段,需要解决AI技术如何与业务场景更好结合,如何减少重复投资、降低成本使投入产出比更高的问题。 此时出现了中台概念,大家寄希望于通过中台化,…...

    2024/4/16 5:36:34
  19. 深入浅出HTML-第1章:启动

    第1章:启动 1、XHTML的3种风味(flavor)分别是严格的(Strict)、过渡的(Transi&gal) 和框架集(Frameset) : ①XHTML 1.0 Strict的规则最严格。已废弃的特性被彻底禁用,只有严格地遵守规则的文档才是合式的。 ②XHTML 1.0Transitional比Strict略为宽松。它的合式文档允许存…...

    2024/4/16 5:36:29
  20. 最全Vue开发小技巧

    Vue开发小技巧Vue基本用法很容易上手,但是有很多优化的写法你就不一定知道了,本文从列举了 36 个 vue 开发技巧; 后续 Vue 3.x 出来后持续更新.1.require.context() 1.场景:如页面需要导入多个组件,原始写法: import titleCom from @/components/home/titleCom import bannerCo…...

    2024/4/20 4:22:56

最新文章

  1. 三数之和 ---- 双指针

    题目链接 题目: 分析: 解法一: 暴力解法, 将所有的三元组都算出来看是否为0, 题目要求去重操作, 所以我们可以使用set去重解法二: 因为我们知道当计算两数之和时, 我们使用的方法是将数组排序,然后利用"双指针"那么同理, 计算三个数之和: 1. 排序2. 固定一个数a, …...

    2024/4/25 19:49:48
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. 不重复数字

    map就感觉很舒服 题目描述 给定 n 个数&#xff0c;要求把其中重复的去掉&#xff0c;只保留第一次出现的数。 输入格式 本题有多组数据。 第一行一个整数 T&#xff0c;表示数据组数。 对于每组数据&#xff1a; 第一行一个整数 n。 第二行 n 个数&#xff0c;表示给定的数。…...

    2024/4/23 6:08:51
  4. [蓝桥杯 2014 省 A] 波动数列

    容我菜菲说一句&#xff0c;全网前排题解都是rubbish&#xff0c;当然洛谷某些也是litter 不好意思&#xff0c;最近背单词背了很多垃圾的英文&#xff0c;正题开始 [蓝桥杯 2014 省 A] 波动数列 题目描述 输入格式 输入的第一行包含四个整数 n , s , a , b n,s,a,b n,s,a…...

    2024/4/23 10:58:20
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/4/25 11:51:20
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/4/25 18:39:24
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/25 18:38:39
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/4/25 18:39:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

    2024/4/25 18:39:22
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

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

    2024/4/25 18:39:22
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/25 18:39:20
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/25 16:48:44
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/25 13:39:44
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/4/25 0:00:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/4/25 4:19:21
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/4/25 18:39:12
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/25 13:19:01
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/25 18:38:58
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

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

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

    2022/11/19 21:17:18
  26. 错误使用 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
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,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
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2022/11/19 21:16:58
  44. 如何在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