最近跟着视频学习了Spring中事务的知识。谈一谈自己的理解,接下来涉及到的代码等资料均来自B站上的视频资料,只是自己在敲得过程中有一些自己的理解。有误的地方欢迎及时指出。

  • 事务最常见的应用场景就是银行转账的例子。当A账户向B账户转账过程中,代码出现了异常,导致A扣钱成功,B未接收到金额。出现这种场景的原因就是没有将整个转账的过程用同一个事务进行统一管理。
  • 首先,先准备出账户的实体类Account:
package com.myself.domain;import java.io.Serializable;public class Account implements Serializable {private Integer id;private String name;private Float money;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Float getMoney() {return money;}public void setMoney(Float money) {this.money = money;}@Overridepublic String toString() {return "Account{" +"id=" + id +", name='" + name + '\'' +", money=" + money +'}';}
}

Account实体类中包含了账户姓名,账户余额两个属性和一个数据可自增长的id。接下来咱们分别从持久层、业务层和测试类一步步分析。
创建完实体类之后,咱们开始对数据库中的account进行CRUD操作。首先创建dao层的接口IAccountDao:

package com.myself.dao;import com.myself.domain.Account;import java.util.List;public interface IAccountDao {List<Account> findAllAccount();Account findById(Integer id);Account findByName(String name);void update(Account account);void delete(Integer id);void save(Account account);
}

主要定义了一些CRUD的接口方法,并且实现了该接口AccountDaoImpl:

package com.myself.dao.impl;import com.myself.dao.IAccountDao;
import com.myself.domain.Account;
import com.myself.utils.ConnectionUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;import java.sql.SQLException;
import java.util.List;public class AccountDaoImpl implements IAccountDao {private QueryRunner runner;public void setRunner(QueryRunner runner) {this.runner = runner;}private ConnectionUtils connectionUtils;public void setConnectionUtils(ConnectionUtils connectionUtils) {this.connectionUtils = connectionUtils;}@Overridepublic List<Account> findAllAccount() {try {return runner.query(connectionUtils.getThreadConnection(),"select * from account",new BeanListHandler<Account>(Account.class));} catch (SQLException e) {throw new RuntimeException(e);}}@Overridepublic Account findById(Integer id) {try {return runner.query(connectionUtils.getThreadConnection(),"select * from account where id = ?",new BeanHandler<Account>(Account.class),id);} catch (SQLException e) {throw new RuntimeException(e);}}@Overridepublic Account findByName(String name) {try {return runner.query(connectionUtils.getThreadConnection(),"select * from account where name = ?",new BeanHandler<Account>(Account.class),name);} catch (SQLException e) {throw new RuntimeException(e);}}@Overridepublic void update(Account account) {try {runner.update(connectionUtils.getThreadConnection(),"update account set name = ? ,money = ?",account.getName(),account.getMoney());} catch (SQLException e) {e.printStackTrace();}}@Overridepublic void delete(Integer id) {try {runner.update(connectionUtils.getThreadConnection(),"delete from account where id = ?",id);} catch (SQLException e) {e.printStackTrace();}}@Overridepublic void save(Account account) {try {runner.update(connectionUtils.getThreadConnection(),"insert into account(name,money) values(?,?)",account.getName(),account.getMoney());} catch (SQLException e) {e.printStackTrace();}}
}

AccountDaoImpl 中出现了一个QueryRuner类和ConnectionUtils工具类。现在开始分析:首先QueryRuner是DbUtils第三方Jar包提供的封装CRUD操作的模板类吧,常用的两个方法是query和update,通过QueryRuner类可以实现对account表的CRUD操作。但是,要想对数据库操作,得需要dataSource数据源对象。QueryRuner类的源码中,有个构造方法可以传入数据源对象:

public QueryRunner(DataSource ds) {super(ds);}

至此,我们Spring的bean.xml文件暂时需要配置如下一些信息:

<!--配置AccountDaoImpl--><bean id="accountDao" class="com.myself.dao.impl.AccountDaoImpl"><property name="runner" ref="runner"></property><property name="connectionUtils" ref="connectionUtils"></property></bean><!--配置QueryRunner--><bean id="runner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype"><constructor-arg name="ds" ref="dataSource"></constructor-arg></bean><!--配置数据源对象--><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="dataSourceName" value="com.mysql.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/mystudy"></property><property name="user" value="root"></property><property name="password" value="root"></property></bean>

暂时先不要理会connectionUtils类,需要关注的是:1、数据源对象,我这里用的是c3p0连接池;2、QueryRunner类注入数据源是通过构造方法注入的;3、AccountDaoImpl类中注入了QueryRunner和ConnectionUtils;4、QueryRunner设置成多例的,每次使用QueryRunner就会获得一个新的连接。

  • 接下来,需要编写业务层的接口和实现类:
package com.myself.service;import com.myself.domain.Account;import java.util.List;public interface IAccountService {List<Account> findAllAccount();Account findById(Integer id);Account findByName(String name);void update(Account account);void delete(Integer id);void save(Account account);void transfer(String sourceName,String targetName,Float money);
}
package com.myself.service.impl;import com.myself.dao.IAccountDao;
import com.myself.domain.Account;
import com.myself.service.IAccountService;import java.util.List;public class AccountServiceImpl implements IAccountService {private IAccountDao accountDao;public void setAccountDao(IAccountDao accountDao) {this.accountDao = accountDao;}@Overridepublic List<Account> findAllAccount() {return accountDao.findAllAccount();}@Overridepublic Account findById(Integer id) {return accountDao.findById(id);}@Overridepublic Account findByName(String name) {return accountDao.findByName(name);}@Overridepublic void update(Account account) {accountDao.update(account);}@Overridepublic void delete(Integer id) {accountDao.delete(id);}@Overridepublic void save(Account account) {accountDao.save(account);}@Overridepublic void transfer(String sourceName, String targetName, Float money) {Account source = accountDao.findByName(sourceName);Account target = accountDao.findByName(targetName);source.setMoney(source.getMoney()-money);target.setMoney(target.getMoney()+money);accountDao.update(source);int i = 1/0;accountDao.update(target);}}

业务层是对持久层的每个方法进行了调用,其中特别加入了一个transfer(),用于一会演示事务。
业务层添加后,更新bean.xml文件:

<!--配置AccountService--><bean id="accountService" class="com.myself.service.impl.AccountServiceImpl"><property name="accountDao" ref="accountDao"></property></bean>

业务层中调用了持久层的方法,所以需要注入accountDao。

到此,捋一捋思路:首先,创建Account实体类,然后编写dao层的CRUD方法,在AccountDaoImpl实现类中,需要引入一个叫QueryRunner的类,进行对数据库的CRUD方法的执行操作。在QueryRunner类中,通过构造方法注入了数据源(c3p0),这样就与数据库建立了连接。这里需要注意的是,在QueryRunner中的query方法中,有BeanListHandle和一个BeanHandle两个参数,这是Spring提供的对查询数据库的结果集进行封装的模板类。然后业务层的实现类调用了持久层的每个方法。

  • 接下来,咱们引入事务。

业务层提供了一个transfer(),模拟了一个转账的操作,三个参数分别是转出账户的姓名,转入账户的姓名,转账金额。首先查出转出账户和转入账户,然后分别更新两个账户的金额,transfer方法中,一共调用了4次dao层的方法。也就是4个独立的事务。这时,在A账户转出金额后,也就是 accountDao.update(source);执行后,程序因为异常出现中断,但是此时accountDao.update(source)的事务已经提交,但是accountDao.update(target);没有执行,所以A账户少了钱,B账户没有增加。此时就需要将这整个过程用同一个事务进行管理。
此时,我们的事务是挂在持久层的,需要将事务迁移到业务层。根据学习资料中的思路,首先我们将连接绑定在线程上,为了在同一线程的任意地方可以使用同一连接,方便实现事务,这里就用ConnectionUtils实现线程绑定:

package com.itheima.utils;import javax.sql.DataSource;
import java.sql.Connection;/*** 连接的工具类,它用于从数据源中获取一个连接,并且实现和线程的绑定*/
public class ConnectionUtils {private ThreadLocal<Connection> tl = new ThreadLocal<Connection>();private DataSource dataSource;public void setDataSource(DataSource dataSource) {this.dataSource = dataSource;}/*** 获取当前线程上的连接* @return*/public Connection getThreadConnection() {try{//1.先从ThreadLocal上获取Connection conn = tl.get();//2.判断当前线程上是否有连接if (conn == null) {//3.从数据源中获取一个连接,并且存入ThreadLocal中conn = dataSource.getConnection();tl.set(conn);}//4.返回当前线程上的连接return conn;}catch (Exception e){throw new RuntimeException(e);}}/*** 把连接和线程解绑*/public void removeConnection(){tl.remove();}
}

ConnectionUtils类中,使用了ThreadLocal将连接绑定在线程上。这里,按我的理解就是将数据源连接对象从QueryRunner对象中解耦出来,注入到ConnectionUtils中,此时,QueryRunner类中就不需要注入数据源连接对象了,所以,bean.xml更新为:

<!-- 配置Connection的工具类 ConnectionUtils --><bean id="connectionUtils" class="com.itheima.utils.ConnectionUtils"><!-- 注入数据源--><property name="dataSource" ref="dataSource"></property></bean><bean id="runner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype"><!--<constructor-arg name="ds" ref="dataSource"></constructor-arg>--></bean>

接下来需要实现事务管理器,事务管理器主要有开启事务、提交事务、回滚事务、释放连接:

package com.itheima.utils;/*** 和事务管理相关的工具类,它包含了,开启事务,提交事务,回滚事务和释放连接*/
public class TransactionManager {private ConnectionUtils connectionUtils;public void setConnectionUtils(ConnectionUtils connectionUtils) {this.connectionUtils = connectionUtils;}/*** 开启事务*/public  void beginTransaction(){try {connectionUtils.getThreadConnection().setAutoCommit(false);}catch (Exception e){e.printStackTrace();}}/*** 提交事务*/public  void commit(){try {connectionUtils.getThreadConnection().commit();}catch (Exception e){e.printStackTrace();}}/*** 回滚事务*/public  void rollback(){try {connectionUtils.getThreadConnection().rollback();}catch (Exception e){e.printStackTrace();}}/*** 释放连接*/public  void release(){try {connectionUtils.getThreadConnection().close();//还回连接池中connectionUtils.removeConnection();}catch (Exception e){e.printStackTrace();}}
}

TransactionManager类中为了将事务与连接关联起来,需要将ConnectionUtils注入进来,此时更新bean.xml:

<!-- 配置事务管理器--><bean id="txManager" class="com.itheima.utils.TransactionManager"><!-- 注入ConnectionUtils --><property name="connectionUtils" ref="connectionUtils"></property></bean>

为了将事务迁移到业务层,需要改造业务层实现类的方法:给AccountServiceImpl添加事务的支持:

package com.itheima.service.impl;import com.itheima.dao.IAccountDao;
import com.itheima.domain.Account;
import com.itheima.service.IAccountService;
import com.itheima.utils.TransactionManager;import java.util.List;/*** 账户的业务层实现类** 事务控制应该都是在业务层*/
public class AccountServiceImpl_OLD implements IAccountService{private IAccountDao accountDao;private TransactionManager txManager;public void setTxManager(TransactionManager txManager) {this.txManager = txManager;}public void setAccountDao(IAccountDao accountDao) {this.accountDao = accountDao;}@Overridepublic List<Account> findAllAccount() {try {//1.开启事务txManager.beginTransaction();//2.执行操作List<Account> accounts = accountDao.findAllAccount();//3.提交事务txManager.commit();//4.返回结果return accounts;}catch (Exception e){//5.回滚操作txManager.rollback();throw new RuntimeException(e);}finally {//6.释放连接txManager.release();}}@Overridepublic Account findAccountById(Integer accountId) {try {//1.开启事务txManager.beginTransaction();//2.执行操作Account account = accountDao.findAccountById(accountId);//3.提交事务txManager.commit();//4.返回结果return account;}catch (Exception e){//5.回滚操作txManager.rollback();throw new RuntimeException(e);}finally {//6.释放连接txManager.release();}}@Overridepublic void saveAccount(Account account) {try {//1.开启事务txManager.beginTransaction();//2.执行操作accountDao.saveAccount(account);//3.提交事务txManager.commit();}catch (Exception e){//4.回滚操作txManager.rollback();}finally {//5.释放连接txManager.release();}}@Overridepublic void updateAccount(Account account) {try {//1.开启事务txManager.beginTransaction();//2.执行操作accountDao.updateAccount(account);//3.提交事务txManager.commit();}catch (Exception e){//4.回滚操作txManager.rollback();}finally {//5.释放连接txManager.release();}}@Overridepublic void deleteAccount(Integer acccountId) {try {//1.开启事务txManager.beginTransaction();//2.执行操作accountDao.deleteAccount(acccountId);//3.提交事务txManager.commit();}catch (Exception e){//4.回滚操作txManager.rollback();}finally {//5.释放连接txManager.release();}}@Overridepublic void transfer(String sourceName, String targetName, Float money) {try {//1.开启事务txManager.beginTransaction();//2.执行操作//2.1根据名称查询转出账户Account source = accountDao.findAccountByName(sourceName);//2.2根据名称查询转入账户Account target = accountDao.findAccountByName(targetName);//2.3转出账户减钱source.setMoney(source.getMoney()-money);//2.4转入账户加钱target.setMoney(target.getMoney()+money);//2.5更新转出账户accountDao.updateAccount(source);int i=1/0;//2.6更新转入账户accountDao.updateAccount(target);//3.提交事务txManager.commit();}catch (Exception e){//4.回滚操作txManager.rollback();e.printStackTrace();}finally {//5.释放连接txManager.release();}}
}

AccountServiceImpl实现类中为了支持事务,需要将TransactionManager注入进来,更新bean.xml:

<!-- 配置Service --><bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"><!-- 注入dao --><property name="accountDao" ref="accountDao"></property><!-- 注入事务管理器 --><property name="txManager" ref="txManager"></property></bean>

通过将连接绑定在线程上,再将事务迁移到业务层,就实现了transfer()方法中四次调用dao方法使用同一个事务进行管理。

  • 最后,重点来了!!!
    经过了上述的操作,虽然将事务从持久层迁移到了业务层,但是业务层的每个方法都添加了开启、提交、回滚、释放的事务操作,让代码显得臃肿。在Java中,给一些方法动态的增强可以使用动态代理模式实现。事务其实就是在调用持久层方法前后进行提交。回滚等控制,所以可以使用动态代理模式,对业务层的方法进行增强:
    我们新添一个BeanFactory类用来对AccountServiceImpl类进行增强:
package com.itheima.factory;import com.itheima.service.IAccountService;
import com.itheima.utils.TransactionManager;import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;/*** 用于创建Service的代理对象的工厂*/
public class BeanFactory {private IAccountService accountService;private TransactionManager txManager;public void setTxManager(TransactionManager txManager) {this.txManager = txManager;}public final void setAccountService(IAccountService accountService) {this.accountService = accountService;}/*** 获取Service代理对象* @return*/public IAccountService getAccountService() {return (IAccountService)Proxy.newProxyInstance(accountService.getClass().getClassLoader(),accountService.getClass().getInterfaces(),new InvocationHandler() {/*** 添加事务的支持** @param proxy* @param method* @param args* @return* @throws Throwable*/@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {if("test".equals(method.getName())){return method.invoke(accountService,args);}Object rtValue = null;try {//1.开启事务txManager.beginTransaction();//2.执行操作rtValue = method.invoke(accountService, args);//3.提交事务txManager.commit();//4.返回结果return rtValue;} catch (Exception e) {//5.回滚操作txManager.rollback();throw new RuntimeException(e);} finally {//6.释放连接txManager.release();}}});}
}

这里使用了jdk动态代理模式,Proxy.newProxyInstance()方法中的三个参数分别为:被代理对象的类加载器,被代理对象的接口,以及实现了InvocationHandler代理接口的实现类。这样就将AccountServiceImpl类中的每个方法进行了增强。此时,更新bean.xml:

<!--配置代理的service--><bean id="proxyAccountService" factory-bean="beanFactory" factory-method="getAccountService"></bean><!--配置beanfactory--><bean id="beanFactory" class="com.itheima.factory.BeanFactory"><!-- 注入service --><property name="accountService" ref="accountService"></property><!-- 注入事务管理器 --><property name="txManager" ref="txManager"></property></bean>

这里需要注意的是:1、BeanFactory类是对AccountServiceImpl进行增强,所以需要将其注入进来,然后需要使用getAccountService()返回的代理类作为真正的AccountServiceImpl类,所以也需要将代理类的实例配置在容器中,即为proxyAccountService,该实例是通过BeanFactory的getAccountService()返回得到的,所以使用factory-bean=“beanFactory” factory-method=“getAccountService”。
通过使用动态代理模式进行事务配置后,AccountServiceImpl又可以恢复成之前的样子:

package com.itheima.service.impl;import com.itheima.dao.IAccountDao;
import com.itheima.domain.Account;
import com.itheima.service.IAccountService;import java.util.List;/*** 账户的业务层实现类** 事务控制应该都是在业务层*/
public class AccountServiceImpl implements IAccountService{private IAccountDao accountDao;public void setAccountDao(IAccountDao accountDao) {this.accountDao = accountDao;}@Overridepublic List<Account> findAllAccount() {return accountDao.findAllAccount();}@Overridepublic Account findAccountById(Integer accountId) {return accountDao.findAccountById(accountId);}@Overridepublic void saveAccount(Account account) {accountDao.saveAccount(account);}@Overridepublic void updateAccount(Account account) {accountDao.updateAccount(account);}@Overridepublic void deleteAccount(Integer acccountId) {accountDao.deleteAccount(acccountId);}@Overridepublic void transfer(String sourceName, String targetName, Float money) {System.out.println("transfer....");//2.1根据名称查询转出账户Account source = accountDao.findAccountByName(sourceName);//2.2根据名称查询转入账户Account target = accountDao.findAccountByName(targetName);//2.3转出账户减钱source.setMoney(source.getMoney()-money);//2.4转入账户加钱target.setMoney(target.getMoney()+money);//2.5更新转出账户accountDao.updateAccount(source);//            int i=1/0;//2.6更新转入账户accountDao.updateAccount(target);}
}

接下来编写测试类:

package com.itheima.test;import com.itheima.service.IAccountService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/*** 使用Junit单元测试:测试我们的配置*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:bean.xml")
public class AccountServiceTest {@Autowired@Qualifier("proxyAccountService")private IAccountService as;@Testpublic void testTransfer(){as.transfer("aaa","bbb",100f);}}

注意!!!此时其实需要使用增强类proxyAccountService实例,但是现在容器中存在两个AccountServiceImpl类型的实例,而@Autowired注解是按类型进行注入的,此时必须再次使用@Qualifier(“proxyAccountService”)注解按名称注入,或者直接使用@Resource注解。

到这里,就说完啦~将完整的bean.xml文件和pom.xml文件附录:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--配置代理的service--><bean id="proxyAccountService" factory-bean="beanFactory" factory-method="getAccountService"></bean><!--配置beanfactory--><bean id="beanFactory" class="com.itheima.factory.BeanFactory"><!-- 注入service --><property name="accountService" ref="accountService"></property><!-- 注入事务管理器 --><property name="txManager" ref="txManager"></property></bean><!-- 配置Service --><bean id="accountService" class="com.itheima.service.impl.AccountServiceImpl"><!-- 注入dao --><property name="accountDao" ref="accountDao"></property></bean><!--配置Dao对象--><bean id="accountDao" class="com.itheima.dao.impl.AccountDaoImpl"><!-- 注入QueryRunner --><property name="runner" ref="runner"></property><!-- 注入ConnectionUtils --><property name="connectionUtils" ref="connectionUtils"></property></bean><!--配置QueryRunner--><bean id="runner" class="org.apache.commons.dbutils.QueryRunner" scope="prototype"><!--<constructor-arg name="ds" ref="dataSource"></constructor-arg>--></bean><!-- 配置数据源 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!--连接数据库的必备信息--><property name="driverClass" value="com.mysql.jdbc.Driver"></property><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property><property name="user" value="root"></property><property name="password" value="root"></property></bean><!-- 配置Connection的工具类 ConnectionUtils --><bean id="connectionUtils" class="com.itheima.utils.ConnectionUtils"><!-- 注入数据源--><property name="dataSource" ref="dataSource"></property></bean><!-- 配置事务管理器--><bean id="txManager" class="com.itheima.utils.TransactionManager"><!-- 注入ConnectionUtils --><property name="connectionUtils" ref="connectionUtils"></property></bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>day03_eesy_01account</artifactId><version>1.0-SNAPSHOT</version><packaging>jar</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.2.RELEASE</version></dependency><dependency><groupId>commons-dbutils</groupId><artifactId>commons-dbutils</artifactId><version>1.4</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency><dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies></project>

以上理解均从视频资料中学习的,附上链接:https://www.bilibili.com/video/BV1mE411X7yp
下一次再根据事务谈谈Spring中的AOP~

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

相关文章

  1. Sprng Boot 微服务配置 跨域请求

    pom.xml跨域 依赖包<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version> </dependency>创建 config 文件夹=> 创建 CorsConfig 跨域配置 Class package com…...

    2024/4/19 5:43:16
  2. 地震子波波形显示及一维地震合成记录制作

    //最小相位子波 #include <stdio.h> #include <math.h> #include <malloc.h> #define PI 3.1415962void waveletfun(int nt_wavelet,float dt,float *wavelet,float fm,float m1m2); void reflectfun(int nt_record,float *Vp,float *des,float *reflect); v…...

    2024/5/1 7:00:00
  3. 虚拟机上安装win7系统

    虚拟机上安装win7系统 1.进入VMvare workstation,点击创建虚的虚拟机,选择自定义,点击下一步2.选择如下,点击下一步3.选择稍后安装,点击下一步 4.选择windows,版本这里我安装的win7系统,所以选择Windos 75.选择安装位置6.处理器配置,根据需求自行选择7.虚拟机内存的大小…...

    2024/5/1 12:12:28
  4. 解决Ubuntu 18.04 LTS显示很卡的问题

    我的电脑有点老了,配置是i7 2600s。之前使用Ubuntu 16.04时,蛮快的。但是,自从安装了Ubuntu 18.04时,就觉得鼠标移动得很慢,感觉很卡。 我百思不得其解。现在这个时代的电脑,不会2D速度都这么慢啊。不科学啊。我一直以为是驱动或者是配置的问题。直到无意间发现我的显示器…...

    2024/5/1 6:01:09
  5. 苏嵌嵌入式学习Linux实训 第一天

    1.今天是实训第一天,老师们预先做了准备工作:给我们介绍了实训中的规章制度,专业认知。 2.软件安装一切正常,没有出现什么错误。教学软件效果良好。 3.认识了Linux及简历对于毕业时秋招的重要性。...

    2024/5/1 18:50:57
  6. 高并发系统设计十七-消息队列,如何降低消息队列系统中消息的延迟

    消息队列,如何降低消息队列系统中消息的延迟 当项目中引入了消息队列时,增加了系统的复杂度。需要考虑如何保证消息不会丢失、如何避免消息重复带来的影响、还需要考虑消息延迟情况,即消费性能的问题。 场景:上游服务器产生订单数据,并将数据放入消息队列服务中,但是下游…...

    2024/5/1 17:05:52
  7. 顺便分享几个免费的短网址生成接口

    最近因为工作需要,需要复制一个链接到PPT中(这个链接很长很长),当然直接将链接转为文字这种方案也是可以的,需要访问时,直接点击文字即可。但是这种方案有个缺点,就是链接不太那么明显,我要给人明确的展示,点后面的链接,前一种方法,别人未必知道这个文字对应一个链接…...

    2024/5/1 5:34:37
  8. Python可视化matplotlib12-垂直|水平|堆积柱形图详解

    柱形图(又称柱状图、直方图、条形图)用于各组数据的数量比较,可以简单的分为水平柱形图、垂直柱形图及堆积柱形图。本文详细介绍matpltlib中垂直、水平和堆积三种柱形图的绘制。我的公众号:“pythonic生物人“,持续分享数据科学干货。版权声明:“pythonic生物人“原创文章…...

    2024/5/1 17:00:32
  9. 感谢答疑,转一下

    # 媒体文件 MEDIA_URL = /static/media/ MEDIA_ROOT = os.path.join(BASE_DIR, static/media)相对路径MEDIA_URL注意 / ,不能多也不能少绝对路径MEDIA_ROOT注意,不要加[ ],写成[os.path.join(BASE_DIR, static/media)]就会报错!#zhuanzai转载https://blog.csdn.net/weixin_…...

    2024/5/1 12:19:52
  10. 快排 冒泡 选择 插入 归并排序算法

    快排 #include <bits/stdc++.h>using namespace std;void quick_sort(vector<int>&q, int l, int r) {if(l >= r) return;int i = l - 1, j = r + 1, x = q[l + r >> 1];while(i < j) {do i ++; while(q[i] < x);do j --; while(q[j] > x);i…...

    2024/5/1 15:49:31
  11. 基本数据类型的最值和长度

    byte short int long char等基本数据类型的最值和长度1.byte的最大值:Byte.MAX_VALUE,最小值:Byte.MIN_VALUE,长度:Byte.SIZE2.short的最大值:Short.MAX_VALUE,最小值:Short.MIN_VALUE,长度:Short.SIZE3.int的最大值:Integer.MAX_VALUE,最小值:Integer.MIN_VALUE,长度:…...

    2024/5/1 16:40:57
  12. eclipse中文乱码

    1 改各种设置utf-8 2 重新notepad打开转utf-8 3控制台乱码改eclipse安装位置下的eclipse.ini 加上一句-Dfile.encoding=utf-8...

    2024/4/22 9:55:17
  13. vue中created、mounted、computed、methods区别与执行顺序

    computed是在DOM执行完成后立马执行(如:赋值) created执行时挂载阶段还没有开始,模版还没有渲染成html,所以无法获取元素。created钩子函数主要用来初始化数据。 mounted钩子函数一般用来向后端发起请求,拿到数据后做一些业务处理。该函数在模版渲染完成后才被调用。DOM操…...

    2024/4/16 14:37:09
  14. leetcode 随笔13

    最近在准备面试,因为是之前没什么了解的领域,所以做题的时间就少了。今天刚结束二面,那道算法题没做出来还是有点小失落的。而且那题之前好像做到过,但面试的时候却没做出来有点不应该。 哎,还是自己太菜了,继续加油吧。 文章目录6.29[215. 数组中的第K个最大元素](https…...

    2024/4/18 15:46:35
  15. Java书城项目(更新中)

    项目第一阶段:表单验证验证用户名:必须由字母,数字,下划线组成,长度5-15位:var patt = /\w{5,12}/; 验证密码:必须由字母,数字,下划线组成,长度5-15位 验证确认密码 邮箱验证:xxxxx@xxx.com 验证码:现阶段只需验证用户输入,因为还没有讲到服务器。验证码生成。一、…...

    2024/4/20 17:31:03
  16. Tree-Shaking性能优化实践 - 原理篇

    一. 什么是Tree-shaking先来看一下Tree-shaking原始的本意上图形象的解释了Tree-shaking 的本意,本文所说的前端中的tree-shaking可以理解为通过工具"摇"我们的JS文件,将其中用不到的代码"摇"掉,是一个性能优化的范畴。具体来说,在 webpack 项目中,有…...

    2024/4/19 13:49:05
  17. 机器视觉入门之路(三九,霍夫(hough)图像,c++)

    前面博文已经有了霍夫找直线的算法这里再补充一下:第一,程序调试成功后,真实的hough图像对比原图像:第二,其实(p,)是可以转换(k,b)的,转换关系如下:斜率k=sin/cos,b=p/sin(),这样你就又有了一幅kb图像,其结果与hough图像差不多,原图像两条直线,那么结果就是两个…...

    2024/4/16 14:37:39
  18. wxml页面中,字符串转为Boolean类型,实现组件隐藏功能,同时进行消息提示----本汪要蹭微信小程序的热度

    今天本汪在闲逛时, 遇到了隔壁加菲猫, 她正在做一个根据数据库某字段的属性,实现前端微信小程序wxml页面 checkbox隐藏的任务 作为根本闲不住的哈皮汪, 本汪又没忍住诱惑, 于是乎,帮了她这个忙 -----------其实本汪也想静静地装高冷,奈何本汪不是这性格啊 -----------爱…...

    2024/4/4 21:17:52
  19. Git恢复之前版本的两种方法reset、revert(图文详解)

    转自:https://blog.csdn.net/yxlshk/article/details/79944535...

    2024/4/18 6:10:56
  20. LeetCode10. 正则表达式匹配

    给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘’ 的正则表达式匹配。 ‘.’ 匹配任意单个字符 ’ 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z 的小写字母。 p 可能为空,…...

    2024/4/27 17:54:16

最新文章

  1. 二分图--判定以及最大匹配

    水了个圈钱杯省一&#xff0c;不过估计国赛也拿不了奖&#xff0c;但还是小小挣扎一下。 什么是二分图&#xff1a;G(V,E)是一个无向图&#xff0c;若顶点V可以分为两个互不相交的子集A,B&#xff0c;并图中的每一条边&#xff08;i,j)所关联的ij属于不同的顶点集&#xff0c;…...

    2024/5/1 20:18:48
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. ChatGPT 初学者指南

    原文&#xff1a;ChatGPT for Beginners 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 介绍 如果您一直关注新闻和趋势&#xff0c;您可能已经在某个地方读到或听到过&#xff0c;Sam Altman 的生成式人工智能平台 ChatGPT 已经将人工智能推向了一个新的高度 - 许多…...

    2024/5/1 13:17:51
  4. Topaz Video AI for Mac v5.0.0激活版 视频画质增强软件

    Topaz Video AI for Mac是一款功能强大的视频处理软件&#xff0c;专为Mac用户设计&#xff0c;旨在通过人工智能技术为视频编辑和增强提供卓越的功能。这款软件利用先进的算法和深度学习技术&#xff0c;能够自动识别和分析视频中的各个元素&#xff0c;并进行智能修复和增强&…...

    2024/5/1 13:35:41
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

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

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

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

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

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

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

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

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

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

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

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

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  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