哪里有微信网站建设企业展厅设计公司北京vi设计

news/2025/10/5 4:45:36/文章来源:
哪里有微信网站建设,企业展厅设计公司北京vi设计,百度网站推广公司,上文明网站 做文明网民征文学习的最大理由是想摆脱平庸#xff0c;早一天就多一份人生的精彩#xff1b;迟一天就多一天平庸的困扰。各位小伙伴#xff0c;如果您#xff1a; 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持#xff0c;想组团高效学习… 想写博客但无从下手#xff0c;急需… 学习的最大理由是想摆脱平庸早一天就多一份人生的精彩迟一天就多一天平庸的困扰。各位小伙伴如果您 想系统/深入学习某技术知识点… 一个人摸索学习很难坚持想组团高效学习… 想写博客但无从下手急需写作干货注入能量… 热爱写作愿意让自己成为更好的人… 文章目录 前言一、基于注解的声明式事务1、准备工作2、测试无事务情况3、加入事务①添加事务配置②添加事务注解③观察结果 4、Transactional注解标识的位置5、事务属性只读6、事务属性超时7、事务属性回滚策略8、事务属性隔离级别9、事务属性传播行为10、全注解配置事务 二、基于XML的声明式事务1、场景模拟2、修改Spring配置文件 总结 前言 一、基于注解的声明式事务 1、准备工作 2、测试无事务情况 3、加入事务 ①添加事务配置 ②添加事务注解 ③观察结果 4、Transactional注解标识的位置 5、事务属性只读 6、事务属性超时 7、事务属性回滚策略 8、事务属性隔离级别 9、事务属性传播行为 10、全注解配置事务 二、基于XML的声明式事务 1、场景模拟 2、修改Spring配置文件 一、基于注解的声明式事务 1、准备工作 ①添加配置 在beans.xml添加配置 !--扫描组件-- context:component-scan base-packagecom.gedeshidai.spring6/context:component-scan②创建表 CREATE TABLE t_book (book_id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,book_name varchar(20) DEFAULT NULL COMMENT 图书名称,price int(11) DEFAULT NULL COMMENT 价格,stock int(10) unsigned DEFAULT NULL COMMENT 库存无符号,PRIMARY KEY (book_id) ) ENGINEInnoDB AUTO_INCREMENT3 DEFAULT CHARSETutf8; insert into t_book(book_id,book_name,price,stock) values (1,斗破苍穹,80,100),(2,斗罗大陆,50,100); CREATE TABLE t_user (user_id int(11) NOT NULL AUTO_INCREMENT COMMENT 主键,username varchar(20) DEFAULT NULL COMMENT 用户名,balance int(10) unsigned DEFAULT NULL COMMENT 余额无符号,PRIMARY KEY (user_id) ) ENGINEInnoDB AUTO_INCREMENT2 DEFAULT CHARSETutf8; insert into t_user(user_id,username,balance) values (1,admin,50);③创建组件 创建BookController package com.gedeshidai.spring6.controller;Controller public class BookController {Autowiredprivate BookService bookService;public void buyBook(Integer bookId, Integer userId){bookService.buyBook(bookId, userId);} }创建接口BookService package com.gedeshidai.spring6.service; public interface BookService {void buyBook(Integer bookId, Integer userId); }创建实现类BookServiceImpl package com.gedeshidai.spring6.service.impl; Service public class BookServiceImpl implements BookService {Autowiredprivate BookDao bookDao;Overridepublic void buyBook(Integer bookId, Integer userId) {//查询图书的价格Integer price bookDao.getPriceByBookId(bookId);//更新图书的库存bookDao.updateStock(bookId);//更新用户的余额bookDao.updateBalance(userId, price);} }创建接口BookDao package com.gedeshidai.spring6.dao; public interface BookDao {Integer getPriceByBookId(Integer bookId);void updateStock(Integer bookId);void updateBalance(Integer userId, Integer price); }创建实现类BookDaoImpl package com.gedeshidai.spring6.dao.impl; Repository public class BookDaoImpl implements BookDao {Autowiredprivate JdbcTemplate jdbcTemplate;Overridepublic Integer getPriceByBookId(Integer bookId) {String sql select price from t_book where book_id ?;return jdbcTemplate.queryForObject(sql, Integer.class, bookId);}Overridepublic void updateStock(Integer bookId) {String sql update t_book set stock stock - 1 where book_id ?;jdbcTemplate.update(sql, bookId);}Overridepublic void updateBalance(Integer userId, Integer price) {String sql update t_user set balance balance - ? where user_id ?;jdbcTemplate.update(sql, price, userId);} }2、测试无事务情况 ①创建测试类 import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;SpringJUnitConfig(locations classpath:beans.xml) public class TxByAnnotationTest {Autowiredprivate BookController bookController;Testpublic void testBuyBook(){bookController.buyBook(1, 1);}}②模拟场景 用户购买图书先查询图书的价格再更新图书的库存和用户的余额 假设用户id为1的用户购买id为1的图书 用户余额为50而图书价格为80 购买图书之后用户的余额为-30数据库中余额字段设置了无符号因此无法将-30插入到余额字段 此时执行sql语句会抛出SQLException ③观察结果 因为没有添加事务图书的库存更新了但是用户的余额没有更新 显然这样的结果是错误的购买图书是一个完整的功能更新库存和更新余额要么都成功要么都失败 3、加入事务 ①添加事务配置 在spring配置文件中引入tx命名空间 ?xml version1.0 encodingUTF-8? beans xmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:contexthttp://www.springframework.org/schema/contextxmlns:txhttp://www.springframework.org/schema/txxsi:schemaLocationhttp://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd在Spring的配置文件中添加配置 bean idtransactionManager classorg.springframework.jdbc.datasource.DataSourceTransactionManagerproperty namedataSource refdruidDataSource/property /bean!--开启事务的注解驱动通过注解Transactional所标识的方法或标识的类中所有的方法都会被事务管理器管理事务 -- !-- transaction-manager属性的默认值是transactionManager如果事务管理器bean的id正好就是这个默认值则可以省略这个属性 -- tx:annotation-driven transaction-managertransactionManager /②添加事务注解 因为service层表示业务逻辑层一个方法表示一个完成的功能因此处理事务一般在service层处理 在BookServiceImpl的buybook()添加注解Transactional ③观察结果 由于使用了Spring的声明式事务更新库存和更新余额都没有执行 4、Transactional注解标识的位置 Transactional标识在方法上则只会影响该方法 Transactional标识的类上则会影响类中所有的方法 5、事务属性只读 ①介绍 对一个查询操作来说如果我们把它设置成只读就能够明确告诉数据库这个操作不涉及写操作。这样数据库就能够针对查询操作来进行优化。 ②使用方式 Transactional(readOnly true) public void buyBook(Integer bookId, Integer userId) {//查询图书的价格Integer price bookDao.getPriceByBookId(bookId);//更新图书的库存bookDao.updateStock(bookId);//更新用户的余额bookDao.updateBalance(userId, price);//System.out.println(1/0); }③注意 对增删改操作设置只读会抛出下面异常 Caused by: java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed 6、事务属性超时 ①介绍 事务在执行过程中有可能因为遇到某些问题导致程序卡住从而长时间占用数据库资源。而长时间占用资源大概率是因为程序运行出现了问题可能是Java程序或MySQL数据库或网络连接等等。此时这个很可能出问题的程序应该被回滚撤销它已做的操作事务结束把资源让出来让其他正常程序可以执行。 概括来说就是一句话超时回滚释放资源。 ②使用方式 //超时时间单位秒 Transactional(timeout 3) public void buyBook(Integer bookId, Integer userId) {try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {e.printStackTrace();}//查询图书的价格Integer price bookDao.getPriceByBookId(bookId);//更新图书的库存bookDao.updateStock(bookId);//更新用户的余额bookDao.updateBalance(userId, price);//System.out.println(1/0); }③观察结果 执行过程中抛出异常 org.springframework.transaction.TransactionTimedOutException: Transaction timed out: deadline was Fri Jun 04 16:25:39 CST 2022 7、事务属性回滚策略 ①介绍 声明式事务默认只针对运行时异常回滚编译时异常不回滚。 可以通过Transactional中相关属性设置回滚策略 rollbackFor属性需要设置一个Class类型的对象 rollbackForClassName属性需要设置一个字符串类型的全类名 noRollbackFor属性需要设置一个Class类型的对象 rollbackFor属性需要设置一个字符串类型的全类名 ②使用方式 Transactional(noRollbackFor ArithmeticException.class) //Transactional(noRollbackForClassName java.lang.ArithmeticException) public void buyBook(Integer bookId, Integer userId) {//查询图书的价格Integer price bookDao.getPriceByBookId(bookId);//更新图书的库存bookDao.updateStock(bookId);//更新用户的余额bookDao.updateBalance(userId, price);System.out.println(1/0); }③观察结果 虽然购买图书功能中出现了数学运算异常ArithmeticException但是我们设置的回滚策略是当出现ArithmeticException不发生回滚因此购买图书的操作正常执行 8、事务属性隔离级别 ①介绍 数据库系统必须具有隔离并发运行各个事务的能力使它们不会相互影响避免各种并发问题。一个事务与其他事务隔离的程度称为隔离级别。SQL标准中规定了多种事务隔离级别不同隔离级别对应不同的干扰程度隔离级别越高数据一致性就越好但并发性越弱。 隔离级别一共有四种 读未提交READ UNCOMMITTED 允许Transaction01读取Transaction02未提交的修改。 读已提交READ COMMITTED、 要求Transaction01只能读取Transaction02已提交的修改。 可重复读REPEATABLE READ 确保Transaction01可以多次从一个字段中读取到相同的值即Transaction01执行期间禁止其它事务对这个字段进行更新。 串行化SERIALIZABLE 确保Transaction01可以多次从一个表中读取到相同的行在Transaction01执行期间禁止其它事务对这个表进行添加、更新、删除操作。可以避免任何并发问题但性能十分低下。 各个隔离级别解决并发问题的能力见下表 隔离级别脏读不可重复读幻读READ UNCOMMITTED有有有READ COMMITTED无有有REPEATABLE READ无无有SERIALIZABLE无无无 各种数据库产品对事务隔离级别的支持程度 隔离级别OracleMySQLREAD UNCOMMITTED×√READ COMMITTED√(默认)√REPEATABLE READ×√(默认)SERIALIZABLE√√ ②使用方式 Transactional(isolation Isolation.DEFAULT)//使用数据库默认的隔离级别 Transactional(isolation Isolation.READ_UNCOMMITTED)//读未提交 Transactional(isolation Isolation.READ_COMMITTED)//读已提交 Transactional(isolation Isolation.REPEATABLE_READ)//可重复读 Transactional(isolation Isolation.SERIALIZABLE)//串行化9、事务属性传播行为 ①介绍 什么是事务的传播行为 在service类中有a()方法和b()方法a()方法上有事务b()方法上也有事务当a()方法执行过程中调用了b()方法事务是如何传递的合并到一个事务里还是开启一个新的事务这就是事务传播行为。 一共有七种传播行为 REQUIRED支持当前事务如果不存在就新建一个(默认)【没有就新建有就加入】SUPPORTS支持当前事务如果当前没有事务就以非事务方式执行**【有就加入没有就不管了】**MANDATORY必须运行在一个事务中如果当前没有事务正在发生将抛出一个异常**【有就加入没有就抛异常】**REQUIRES_NEW开启一个新的事务如果一个事务已经存在则将这个存在的事务挂起**【不管有没有直接开启一个新事务开启的新事务和之前的事务不存在嵌套关系之前事务被挂起】**NOT_SUPPORTED以非事务方式运行如果有事务存在挂起当前事务**【不支持事务存在就挂起】**NEVER以非事务方式运行如果有事务存在抛出异常**【不支持事务存在就抛异常】**NESTED如果当前正有一个事务在进行中则该方法应当运行在一个嵌套式事务中。被嵌套的事务可以独立于外层事务进行提交或回滚。如果外层事务不存在行为就像REQUIRED一样。【有事务的话就在这个事务里再嵌套一个完全独立的事务嵌套的事务可以独立的提交和回滚。没有事务就和REQUIRED一样。】 ②测试 创建接口CheckoutService package com.gedeshidai.spring6.service;public interface CheckoutService {void checkout(Integer[] bookIds, Integer userId); }创建实现类CheckoutServiceImpl package com.gedeshidai.spring6.service.impl;Service public class CheckoutServiceImpl implements CheckoutService {Autowiredprivate BookService bookService;OverrideTransactional//一次购买多本图书public void checkout(Integer[] bookIds, Integer userId) {for (Integer bookId : bookIds) {bookService.buyBook(bookId, userId);}} }在BookController中添加方法 Autowired private CheckoutService checkoutService;public void checkout(Integer[] bookIds, Integer userId){checkoutService.checkout(bookIds, userId); }在数据库中将用户的余额修改为100元 ③观察结果 可以通过Transactional中的propagation属性设置事务传播行为 修改BookServiceImpl中buyBook()上注解Transactional的propagation属性 Transactional(propagation Propagation.REQUIRED)默认情况表示如果当前线程上有已经开启的事务可用那么就在这个事务中运行。经过观察购买图书的方法buyBook()在checkout()中被调用checkout()上有事务注解因此在此事务中执行。所购买的两本图书的价格为80和50而用户的余额为100因此在购买第二本图书时余额不足失败导致整个checkout()回滚即只要有一本书买不了就都买不了 Transactional(propagation Propagation.REQUIRES_NEW)表示不管当前线程上是否有已经开启的事务都要开启新事务。同样的场景每次购买图书都是在buyBook()的事务中执行因此第一本图书购买成功事务结束第二本图书购买失败只在第二次的buyBook()中回滚购买第一本图书不受影响即能买几本就买几本。 10、全注解配置事务 ①添加配置类 package com.gedeshidai.spring6.config;import com.alibaba.druid.pool.DruidDataSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource;Configuration ComponentScan(com.gedeshidai.spring6) EnableTransactionManagement public class SpringConfig {Beanpublic DataSource getDataSource(){DruidDataSource dataSource new DruidDataSource();dataSource.setDriverClassName(com.mysql.cj.jdbc.Driver);dataSource.setUrl(jdbc:mysql://localhost:3306/spring?characterEncodingutf8useSSLfalse);dataSource.setUsername(root);dataSource.setPassword(root);return dataSource;}Bean(name jdbcTemplate)public JdbcTemplate getJdbcTemplate(DataSource dataSource){JdbcTemplate jdbcTemplate new JdbcTemplate();jdbcTemplate.setDataSource(dataSource);return jdbcTemplate;}Beanpublic DataSourceTransactionManager getDataSourceTransactionManager(DataSource dataSource){DataSourceTransactionManager dataSourceTransactionManager new DataSourceTransactionManager();dataSourceTransactionManager.setDataSource(dataSource);return dataSourceTransactionManager;} }②测试 import com.gedeshidai.spring6.config.SpringConfig; import com.gedeshidai.spring6.controller.BookController; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;public class TxByAllAnnotationTest {Testpublic void testTxAllAnnotation(){ApplicationContext applicationContext new AnnotationConfigApplicationContext(SpringConfig.class);BookController accountService applicationContext.getBean(bookController, BookController.class);accountService.buyBook(1, 1);} }二、基于XML的声明式事务 1、场景模拟 参考基于注解的声明式事务 2、修改Spring配置文件 将Spring配置文件中去掉tx:annotation-driven 标签并添加配置 aop:config!-- 配置事务通知和切入点表达式 --aop:advisor advice-reftxAdvice pointcutexecution(* com.gedeshidai.spring.tx.xml.service.impl.*.*(..))/aop:advisor /aop:config !-- tx:advice标签配置事务通知 -- !-- id属性给事务通知标签设置唯一标识便于引用 -- !-- transaction-manager属性关联事务管理器 -- tx:advice idtxAdvice transaction-managertransactionManagertx:attributes!-- tx:method标签配置具体的事务方法 --!-- name属性指定方法名可以使用星号代表多个字符 --tx:method nameget* read-onlytrue/tx:method namequery* read-onlytrue/tx:method namefind* read-onlytrue/!-- read-only属性设置只读属性 --!-- rollback-for属性设置回滚的异常 --!-- no-rollback-for属性设置不回滚的异常 --!-- isolation属性设置事务的隔离级别 --!-- timeout属性设置事务的超时属性 --!-- propagation属性设置事务的传播行为 --tx:method namesave* read-onlyfalse rollback-forjava.lang.Exception propagationREQUIRES_NEW/tx:method nameupdate* read-onlyfalse rollback-forjava.lang.Exception propagationREQUIRES_NEW/tx:method namedelete* read-onlyfalse rollback-forjava.lang.Exception propagationREQUIRES_NEW//tx:attributes /tx:advice注意基于xml实现的声明式事务必须引入aspectJ的依赖 dependencygroupIdorg.springframework/groupIdartifactIdspring-aspects/artifactIdversion6.0.2/version /dependency总结 以上就是Spring之事务2的相关知识点希望对你有所帮助。 积跬步以至千里积怠惰以至深渊。时代在这跟着你一起努力哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/927866.shtml

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

相关文章

网站建站的标准wordpress 视频无广告

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt326 JSTL标签提供了对国际化(I18N)的支持,它可以根据发出请求的客户端地域的不同来显示不同的语言。同时还提供了格式化数据和日期的方法。实现这些功能需要I18N…

哈尔滨网站制作策划橙域名网站

转载于:https://www.cnblogs.com/SunWentao/archive/2008/06/20/1226975.html

php中英文网站模板华为通用软件开发工程师待遇

练习 1.总结二进制信号量和计数型信号量的区别,以及他们的使用场景。 二进制信号量:信号量的数值只有0和1(用于共享资源的访问) 计数性信号量:计数型信号量的值一般是大于或者等于2(生产者和消费者模型&am…

群晖ds218+做网站qq营销网站源码

文章目录 替换数字 54卡码网直接操作读取的[]byte 替换数字 54卡码网 本题为卡码网的54题,起为acm模式的答题 这里我们不在输入获得的[]byte类型上直接修改,而是保存在新建的[]byte上 golang小知识: 单引号’,表示byte类型或rune…

网站开发模板教程个人网站赏析

牙说:这篇论文是研究蚁群算法在能量有效路由协议的过程中必读的一篇文章,原是全英文,在这里按照自己的理解大致翻译成中文,好好学习,与君共勉。 论文题目:An Energy-Efficient Ant-Based Routing Algorith…

做网站学h5还是php网站建设公司是怎么找客户

前面一直都是使用命令行运行代码,不够人性化。这篇用Python编写一个GUI界面,使用PyQt5编写图像处理程序。包括:打开、关闭摄像头,捕获图片,读取本地图片,灰度化和Otsu自动阈值分割的功能。 使用Qt Designer…

牡丹江地区做网站的公司深圳我的网站

参考链接: Java在竞争性编程中的快速I/O 第1章 框架概述 1.1 什么是框架 1.1.1 什么是框架 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被…

互动网站设计与制作微信公众号开发需要什么技术

AttributeError: str object has no attribute decode h5py 安装 h5py2.10

昆明网站运营公司有哪些阿里云虚拟主机装WordPress

目录 一、关联式容器 1.1 树形结构的关联式容器 二、set 2.1 set的介绍 2.2 set的使用 2.2.1 set的构造 2.2.2 set的迭代器 2.2.3 set的容量函数 2.2.4 set的功能函数 2.2.5 set的使用举例 三、multiset 3.1 multiset的介绍 3.2 multiset的使用演示 四、map 4.1…

jsp网站服务建设开题报告一级消防工程师考试条件

首先hutool已经为我们封装好了远程调用的接口,我们只要将对应的传参和方式对应填写即可 hutool官方文档 1实际应用 post 常见的使用json传参,contend type为application/json RequestMapping("login") ResponseBody public static String s…

cms高端建站龙岩市建设部网站

# 项目交付用正版,省下一台Iphone12 # # 31款JAVA开发必备控件和工具 # 相关链接: VS TFS源码分析软件PATFS使用方法二:设置新数据检查间隔VS TFS源码分析软件PATFS使用方法三:数据附件大小限制的自定义设置VS TFS源码分析软件P…

营销型网站案例分析外贸网站建设推广方案

问题 在AWS CloudWatch日志组中,想要查询出包含中文关键字的错误日志,结果,AWS说语法错误。 最开始,使用如下查询,查询可能的错误日志: 查询语句,如下: {($.log %ERROR%) }具体效…

microsoft免费网站wordpress 标签小工具

场景复现 举个例子,针对不同的设备的内存的不同加载一些资源的时候需要采取不同的策略,比如,在内存比较大的设备,可以一次性加载,繁殖需要使用懒加载,这个时候我们就可以采用配置文件配置中心去控制了 Cond…

外贸一般上什么网站百度免费收录提交入口

1:/nsxi_monitor查看接口日志 2:内表数据拼接 2.1、给内表加一个空行并修改他的值 APPEND INITIAL LINE TO GT_ALV ASSIGNING FIELD-SYMBOL(<FS>) .2.2、将内表数据拼接在一行 CONCATENATE LINES

郑州模板网站工程施工公司

作者&#xff1a;RednaxelaFX 链接&#xff1a;https://www.zhihu.com/question/28554410/answer/41486461 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 先解决些大问题再回到题主的具体问题。 首先&#xff0c…

怪兽网站模板wordpress 开发者

一、什么是脱落率&#xff1f; 脱落&#xff1a;是指临床试验的受试者由于任何原因不能继续按研究方案进行到所要求的最后一次随访。 &#xff08;ICH E9&#xff09; 根据定义&#xff0c;只要没有按照试验要求完成所有访视即为脱落&#xff0c;计算脱落率是基于试验总结页“…

网站开发流程分析灰系网站

简介&#xff1a; 尽管可以通过稳定性体系建设&#xff0c;来避免出现生产系统故障。但是仍然无法彻底避免一点风险都不会产生&#xff0c;当稳定性风险产生后&#xff0c;怎么快速协调组织&#xff0c;缩短故障时长&#xff0c;科学的流程呢&#xff1f; 作者 | 金喜 来源 | 阿…

怎么创造自己的网站手机wap网站大全

前言 在现代的移动应用程序中&#xff0c;长连接是一种不可或缺的能力&#xff0c;包括但不限于推送、实时通信、信令控制等常见场景。在猫耳FM的直播业务中&#xff0c;我们同样使用了 WebSocket 长连接作为我们实时通信的基础。 在我们推进用户体验优化的工作中&#xff0c;…

传统企业如果建立网站福建省网站备案

介绍 方法的多态 多态是在继承&#xff0c;重载&#xff0c;重写的基础上实现的 我们可以看看这个代码 package b;public class main_ {public static void main(String[] args) { // graduate granew graduate(); // gra.cry();//这个时候&#xff0c;子类的cry方法就重写…

建设网站平台的用语wordpress网站静态页面生成

目录 登录AP产品 Console登录&#xff08;只可以现场登录&#xff09; Web/Telnet/SSH登录&#xff08;可以现场、远程登录&#xff09; 配置AP的管理地址 通过Web界面远程登录 通过Telnet、SSH等命令行的方式登录 登录AC产品 Console登录&#xff08;只可以现场登录&a…