自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(365)
  • 资源 (33)
  • 收藏
  • 关注

原创 设计模式17-门面模式

一 门面模式的定义     门面模式也叫外观模式,是一种比较常用的封装模式,其定义如下:要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。     门面模式注重统一的对象,也就是提供一个访问子系统的接口,除了这个接口不允许有任何访问子系统的行为发生,其通用类图如下:Facade门面角色:客户端可以调用这个角色的方法,此角色知晓子系统的

2018-01-29 11:53:11 342

原创 设计模式16-观察者模式

一 观察者模式定义       观察者模式也叫发布订阅模式,它是一个在项目中经常使用的模式,其定义如下:定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。     观察者模式的通用类图:Subject被观察者:定义被观察者必须实现的职责,它必须能够动态的增加,取消观察者者。它一般是抽象类或者是实现类,仅仅完成作为被观察者必须实现的职责:管理观察

2018-01-29 10:37:23 284

原创 设计模式15-组合模式

一 组合模式的定义         组合模式也叫合成模式,有时又叫部分-整体模式,主要是用来描述部分与整体的关系,定义:将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用一致性。       组合模式通用类图:   Component抽象构建角色:定义参加组合对象的共有方法和属性,可以定义一些默认的行为或属性。Leaf叶子构件:叶子对象,其下再也没有其他的分支,

2018-01-26 18:11:27 412

原创 设计模式14-迭代器模式

其他设计模式的链接:http://blog.csdn.net/wj903829182/article/category/7068746          这里来了解下设计模式的迭代模式。一 迭代模式的简单实现案例1,类图      看上面的代码是不是有点复杂,下面我们来实现代码,可能看代码根据清晰。     项目信息接口:package com.jack.interator;/** * Cr

2018-01-26 15:02:31 380

原创 设计模式13-适配器模式

之前的设计模式可以参考:http://blog.csdn.net/wj903829182/article/category/7068746       这里继续前面没有总结完的设计模式,适配器模式,适配器模式的定义:将一个类的接口变换成客户端期待的另外一种接口,从而使原本不匹配的而无法在一起工作的两个类能够在一起工作。      一 适配器模式的简单实现       适配器模式又叫做变压器模式,也

2018-01-26 12:16:18 442

原创 spring-session和redis解决spring cloud中session不一致性问题

现在都比较流行使用spring boot来进行开发,使用spring cloud来搭建分布式。在搭建的时候会涉及到一个关键的问题,session统一的问题。使用zuul作为网关转发来调用其他模块,zuul中的session和其他模块的session会不一致,同时如果是前后端分离,还存在跨域的问题下面会给出解决的方法。这样会导致用户登入时候,没法保存用户的信息,session会存在问题。解决的办法采

2018-01-25 15:16:20 15445 6

原创 mybatis-spring1

下面开始学习mybatis和spring的整合,需要了解spring的ioc和aop的知识,之前的博客有介绍。spring框架已经成为java世界最为流行的ioc和aop框架。通过spring框架我们可以使用ioc的依赖注入,即插即拨功能;通过aop框架,数据事务可以委托给spring处理,消除掉很大一部分的事务代码。mybatis-spring使得业务层和模型层得到了更好的分离。mybati和s

2017-12-26 21:23:39 422

原创 mybatis插件

前面讨论了四大对象的运行过程,在Configuration对象的创建方法里我们看到了mybatis用责任链去封装它们。换句话说,我们有机会在四大对象调度的时候插入我们的的代码去执行一些特殊的要求以满足特殊的场景需求,这便是mybati的插件技术。        在没能完全理解mybatis的原理和插件的时候,使用插件是十分危险的。使用插件就意味着mybatis底层封装,它给予我们灵活性的同时,也给

2017-12-24 10:37:14 1880

原创 mybatis的解析和运行原理2-SqlSession的运行过程

SqlSession的运行过程是mybatis的重点和难点,也是整个mybatis比较难以理解的部分。SqlSession是一个接口,使用它并不复杂。我们构建SqlSessionFactory就可以轻易地拿到SqlSession了。SqlSession给出了查询,插入,更新,删除的方法,在旧版的mybatis或ibatis中常常使用这些接口方法,而在新版本的mybatis中建议使用Mapper,所

2017-12-23 22:02:23 972

原创 mybatis的解析和运行原理1

如果只是学会mybatis的使用,那么在之前的博客中对mybatis一些基本的使用已经做了比较详细的说明了。但是在开发中,对于很多东西我们需要知道原理,才能对源码进行修改,写出更好的代码,对mybatis理解的更加深入,做到知其然并知其所以然。之前的博客:http://blog.csdn.net/j903829182/article/details/73382280       接下来是对myba

2017-12-18 21:18:38 613

原创 读取xml文件转换为json文件

在平时经常遇到需要把xml文件转换为json格式数据的需求,这里将实现读取指定目录的xml文件并吧内容转换为json格式然后输出到指定目录。项目采用spring boot项目,下面是实现的主要步骤:一,创建一个spring boot项目      创建好spring boot项目,配置pom.xml文件,代码如下:<project xmlns="http://maven.apache.org/P

2017-11-29 14:39:48 6985

原创 h5+实现手机端的录音,拍照,录像

使用h5+即h5plus可以实现调用手机的功能实现语音的录制播放,图片上传下载,拍照,录像的功能,并提供上传下载的功能。开发工具使用hbuilder,该开发工具有模板和demo可以参考实现快速的开发app功能。使用h5调用硬件的功能,实现原生的效果,前端开发app周期短,开发速度快,入门门槛低,hbuilder还提供了一个mui库,可以实现很多手机原生ui的效果。

2017-11-21 12:23:16 41480 23

原创 java实现amr转mp3

由于amr格式的语音,在前端页面一般不能直接播放,需要后台转换,下面实现amr格式的语音转mp3.       下载jave-1.0.2.jar包,创建一个maven项目,在resources目录下创建一个lib目录,把jave-1.0.2.jar包拷贝到lib目录下,在pom.xml里面依赖jave-1.0.2.jar本地包,maven不能远程下载jave-1.0.2.jar包,需要本地引入,引

2017-11-14 17:11:21 8130

原创 SpringBoot37-分布式系统开发-基于Docker部署3

以spring cloud开发的微服务程序是否适合在docker环境下部署。代码参考之前的博客:http://blog.csdn.net/j903829182/article/details/78511059一,Dockerfile编写     前面博客的6个微服务的Dockerfile的编写几乎完全一致,下面以config模块为例。1,runboot.sh脚本编写     位于src/main/

2017-11-13 22:58:22 720

原创 SpringBoot36-分布式系统开发-spring cloud2

接着上一篇博客代码继续一,界面模块-ui本模块是一个网关模块1,依赖    本模块会使用ribbon,feign,zuul,以及CircuitBreaker,所以需要添加如下的依赖,如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

2017-11-12 12:34:04 757

原创 SpringBoot35-分布式系统开发-spring cloud1

一,微服务、原生云应用       微服务(Microservice)是近两年来非常火的概念,它的含义是:使用定义好边界的小的独立组件来做好一件事情。微服务是相对于传统单块式架构而言的。       单块式架构是一份代码,部署和伸缩都是基于单个单元进行的。它的优点是易于部署,但是面临可用性,可伸缩性差,集中发布的生命周期以及违反单一功能原则。微服务的出现解决了这个问题,它以单个独立的服务来做一个功

2017-11-09 21:46:00 645

原创 SpringBoot34-springboot应用监控-http,JMX,SSH

spring boot提供了运行时的应用监控和管理的功能。我们可以通过http,JMX,SSH协议来进行操作。审计,监控及指标信息将会自动得到。      spring boot提供了监控和管理端点:actuator:所有EnPoint的列表,需要加入spring HATEOAS支持autoconfig:当前应用的所有自动配置beans:当前应用中所有Bean信息configprops:当前应用中

2017-11-06 21:30:02 11303

原创 SpringBoot33-springboot开发部署与测试-spring boot测试

spring boot的测试和spring mvc的测试类似。在spring boot中,每次新建项目的时候,都会自动加上spring-boot-starter-test的依赖,这样我们就没必要测试的时候再添加额外的jar包。    spring boot还会创建一个当前项目的测试类,位于src/test/java的包下:      新建一个spring boot项目      依赖jpa,web

2017-11-05 10:28:48 1097

原创 SpringBoot32-springboot开发部署与测试-云部署,基于Docker的部署

这篇将在centos7上用docker部署spring boot程序,学会如何编译自己的docker,并运行镜像的容器。    主流的云计算(PAAS)平台都支持发布Docker镜像。Docker是使用Dockerfile文件来编译自己的镜像的。一,Dockerfile    Dockerfile主要有如下的指令: 1)FROM指令FROM指令指明了当前镜像继承的基镜像。编译当前镜像时会自动下载基

2017-11-02 22:17:57 607

原创 SpringBoot31-springboot开发部署与测试-开发热部署和常规部署

一,开发的热部署1,模板热部署     在spring boot里,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在applicaiotn.properties中关闭模板引擎的缓存,例如:Thymeleaf的配置:spring.thymeleaf.cache=falseFreeMarker的配置:spring.freemarker.cache=

2017-11-02 21:42:17 468

原创 spring boot实现图片的上传和下载功能

              这篇博客简单介绍下spring boot下图片上传和下载,已经遇到的问题。首先需要创建一个spring boot项目。 1,核心的controller代码package com.qwrt.station.websocket.controller;import com.alibaba.fastjson.JSONObject;import com.qwrt.stati...

2017-10-31 19:26:52 31903 14

原创 SpringBoot30-springboot企业级开发-异步消息

异步消息主要目的是为了系统与系统之间的通信。所谓异步消息即消息发送者无须等待消息接收者的处理及返回,甚至无须关心消息是否发送成功。     在异步消息中有两个很重要的概念,即消息代理(message broker)和目的地(destination)。当消息发送者发送消息后,消息将由消息代理接管,消息代理保证消息传递到指定的目的地。     异步消息主要有两种形式的目的地:队列(queue)和主题(

2017-10-30 21:49:52 568

原创 springboot-websocket作为客户端

      本篇博客主要记录下使用websocket作为客户端的功能一,websocket服务端1,创建一个spring boot项目       pom.xml的代码如下:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="htt...

2017-10-25 16:23:36 19332

原创 SpringBoot29-springboot企业级开发-批处理Spring Batch

一,Spring Batch快速入门 1,什么是Spring Batch       Spring Batch是用来处理大量数据操作的一个框架,主要用来读取大量数据,然后进行一定处理后输出指定的形式。2,Spring Batch主要组成       Spring Batch主要由以下几部分组成:JobRepository:用户注册Job的容器JobLauncher:用来启动Job的接口Job:我们

2017-10-20 23:20:33 4761

原创 spring boot AOP和spring boot统一异常处理

一,spring AOPspring boot使用AOP,代码如下,代码比较简单就不细说了,直接上代码,可以使用AOP做日志处理package com.qwrt.fire.sensor.aop;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;import org.aspectj.lan

2017-10-20 14:33:42 8544 2

原创 SpringBoot28-springboot企业级开发-安全控制Spring Security

一,Spring Security快速入门1,什么是Spring Security        Spring Security是专门针对基于Spring的项目的安全框架,充分利用了依赖注入和AOP来实现安全的功能。     在早期的Spring Security版本,使用Spring Security需要使用大量的xml配置,而下面将全部基于Java配置来实现Spring Security的功能

2017-10-12 21:28:02 1542

原创 SpringBoot27-spingboot数据访问-NoSQL(Redis)

Redis是一个基于键值对的开源内存数据存储,当然Redis也可以做数据存储。一,Spring的支持1,配置           Spring对Redis的支持也是通过Spring Data Redis来实现的,Spring Data JPA为我们提供了连接相关的ConnectionFactory和数据操作相关的RedisTemplate。在这里需要注意,Spring Data Redis值对Re

2017-10-11 21:32:18 486

原创 SpringBoot26-spingboot数据访问-NoSQL(MongDB)

NoSQL是对于不使用关系作为数据管理的数据库系统的统称。NoSQL的主要特点是不使用SQL语言作为查询语言,数据存储也不是固定的表,字段。        NoSQL数据库主要有文档存储型(MongoDB),图形关系存储型(Neo4j)和键值对存储型(Redis)。        本篇先演示基于MongoDB的数据访问,下一篇将演示基于Redis的数据访问。一,MongoDB        Mon

2017-10-10 20:35:17 482

原创 SpringBoot25-spingboot数据访问-数据缓存Cache

我们知道一个程序的瓶颈在于数据库,我们也知道内存的速度是大大快于硬盘的速度的。当我们需要重复地获取相同的数据的时候,我们一次又一次的请求数据库或者远程服务,导致大量的时间耗费在数据库查询或者远程方法调用上,导致程序性能的恶化,这便是数据缓存要解决的问题。一,Spring 缓存支持     Spring定义了org.springframework.cache.CacheManager和org.spr

2017-10-08 22:03:00 717

原创 SpringBoot24-spingboot数据访问-声明式事务

一,spring事务的机制       所有的数据访问技术都有事务处理机制,这些技术提供了API用来开启事务,提交事务来完成数据操作,或者在发生错误的时候回滚数据。     而spring的事务机制是用统一的机制来处理不同数据访问技术的事务处理。spring的事务机制提供了一个PlatformTransactionManager接口,不同的数据访问技术的事务使用不同的接口实现,如下:数据访问技术及

2017-10-05 11:07:49 1210

原创 SpringBoot23-spingboot数据访问-Spring Data REST

一,点睛Spring Data REST     1,什么是Spring Data REST      Spring Data JPA是基于Spring Data的repository之上,可以将repository自动输出为REST资源。目前Spring Data REST支持将Spring Data JPA,Spring Data MongoDB,Spring Data Neo4j,Sprin

2017-10-05 08:36:13 1398

原创 SpringBoot22-spingboot数据访问-Spring Data JPA

一:电竞Spring Data JPA1,什么事Spring Data JPA        我们知道Hibernate是数据访问解决技术的绝对霸主,使用O/R映射技术实现数据访问,o/r映射即将领域模型类和数据库的表进行映射,通过程序操作对象而实现表数据操作的能力,让数据访问操作无须关注数据库相关的技术。       随着Hibernate的盛行,Hibernate主导了EJB3.0的JPA规范

2017-10-03 00:03:49 1163

原创 spring cloud config 用svn做配置文件仓库

spring cloud config 用svn做配置文件仓库spring cloud的配置文件中心分为服务端和客户端,下面是一个例子:一:服务端主要配置1,创建一个spring boot项目,修改pom.xml,添加jar包依赖,代码如下:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.or

2017-09-11 18:03:41 1485

原创 zookeeper和kafka

zookeeper:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。Kafka:是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。kafka的使用需要依赖zook

2017-09-05 14:34:52 1775

原创 SpringBoot21-springboot的数据访问-引入Docker

Spring Data项目是Spring用来解决数据访问问题的一揽子解决方案,Spring Data是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案。Spring Data使我们可以快速且简单地使用普通的数据访问技术及新的数据访问技术。Spring Data包含的子项目有:Spring Data JPA,Spring Data MongoDB,Spring Data Neo

2017-08-21 23:08:28 433

原创 SpringBoot20-springboot的Web开发-WebSocket

一:什么是WebSocket       WebSocket为浏览器和服务端提供了双工异步通信的功能,即浏览器可以向服务端发送消息,服务端也可以向浏览器发送消息。WebSocket需浏览器的支持,如ie10+,Chrome13+,Firefox6+,这对目前的浏览器来说不是什么问题了。      WebSocket是通过一个socket来实现双工异步通信的能力的。但是直接使用WebSocket(或

2017-08-21 23:04:07 4446 3

原创 设计模式12-策略模式

话说,三国演义中,孙权看出刘备有野心,杀不能杀,留着又是祸害,于是想出一个办法,准备招刘备做女婿。让后留着刘备在东吴,软禁刘备。东吴的想法很好,无奈有一个诸葛亮,他预测了东吴有此招数,于是在刘备去东吴招亲之前,特授给伴郎赵云三个锦囊,按天机拆开解决棘手问题。       这三个妙计分别是:找乔国老帮忙,求吴国太放行以及孙夫人断后。这三个计谋有一个方法都是执行,具体执行上面内容,每个计谋不同,执行不

2017-08-15 18:03:07 610

原创 设计模式11-装饰模式

装饰模式顾名思意,就是对原对象进行修饰。就像给房子装修一样,可以让房子好看。在java里面使用装饰模式,可以让对象的功能更加的好看,表达委婉。      假如有这样的一个场景,我们小时候考试,成绩考的不好,老师需要拿成绩单回去,给家长签字,由于成绩不好,根本不敢拿给家长看,更别说签名了。这时候如果我们能委婉的表达我们的成绩,说不定家长一高兴就签名了。看下面的类图:

2017-08-15 16:34:36 459 1

原创 SpringBoot19-springboot的Web开发-Favicon配置

Spring Boot提供了一个默认的Favicon,每次访问应用的时候都能看到,如下图:定制自己的Favicon一:关闭Favicon     我们可以在application.yml中设置关闭Favicon,默认为开启,spring: mvc: favicon: enabled: false二:设置自己的Favicon   若需设置自己的Favicon,则只需将自己的f

2017-08-13 21:36:15 4350 1

原创 SpringBoot18-springboot的Web开发-Tomcat配置

这里讲的tomcat配置,但其实指的是servlet容器的配置,因为Spring Boot默认内嵌的Tomcat为servlet容器,这里的配置对Tomcat,Jetty和Undertow都是通用的 一:配置Tomcat     关于Tomcat的所有属性都在org.springframework.boot.autoconfigure.web.ServerProperties配置类中做了定义,我们

2017-08-13 20:38:58 836

Docker开发实战

Docker开发实战高清版本,进行docker入门很不错的一本书

2018-08-07

docker-springboot

docker和springboot结合的一个例子,使用docker打包springboot项目

2018-07-07

转码工具ffmpeg

使用ffmpeg工具实现amr格式转mp3格式,当然也可以其他格式的转换

2017-12-09

原生apphtml2.rar

该demo使用h5+的功能基于android手机实现了录音,拍照,录像并进行上传下载,播放的功能,采用h5开发移动app,理论是支持android和ios的开发,开发工具采用hbuilder,利用hbuilder打包app在android机上运行,目前只测试了android机

2017-11-21

转换工具ffmpeg

ffmpeg实现mp4转mp3,mp4转ogg,命令如下: ffmpeg -i 1510557358152.mp4 -vcodec h264 test.mp4 ffmpeg -i 1510557358152.mp4 -acodec libvorbis test2.ogg

2017-11-14

语音视频拍照

实现html5打包apk,安装到android系统中,实现上传图片,拍照,录制视频,录制语音,视频语音,图片的的上传下线

2017-11-14

haproxy-1.7.5.tar.gz

最新的 haproxy-1.7.5.tar.gz,进行高可用,负载均衡

2017-06-21

zookeeper-3.4.10.tar.gz

目前最新稳定版zookeeper-3.4.10。windows和linux都已使用。运行前需要将conf下的zoo_sample.cfg更名为zoo.cfg。配置文件中的日志路径端口之类的可以根据自己情况配置。

2017-06-21

mybatis3.4.4的源代码

这是mybatis3.4.4的源代码

2017-05-13

mybatis-3.4.4

mybatis-3.4.4的jar包

2017-05-13

druid-1.0.25.jar

druid-1.0.25.jar

2016-10-20

commons-pool2-2.4.2.jar

commons-pool2-2.4.2.jar

2016-10-20

commons-logging-1.2.jar

commons-logging-1.2.jar

2016-10-20

mysql数据库驱动包mysql-connector-java-5.1.39-bin.jar

连接mysql的jar包

2016-10-20

commons-dbcp2-2.1.1.jar

commons-dbcp2-2.1.1.jar使用dbcp进行数据库连接池的jar包

2016-10-20

这是log4j-1.2.17

这是一个log4j-1.2.17.jar的jar包

2016-05-06

这是mybatis3.2.7

这是一个mybatis-3.2.7.jar的jar包

2016-05-06

jquery1.9.1

这是jquery的一个包,是1.9.1的版本,还算比较的新

2015-11-27

锋利jquery

《锋利的jQuery》是人民邮电出版社在2009年6年出版的一本书籍。 本书循序渐进地对jQuery的各种函数和方法调用进行了介绍,读者可以系统地掌握jQuery的DOM操作、事件监听和动画、表单操作、AJAX以及插件方面等知识点,并结合每个章节后面的案例演示进行练习,达到掌握核心知识点的目的。为使读者更好地进行开发实践,本书的最后一章将前7章讲解的知识点和效果进行了整合,打造出一个非常有个性的网站,并从案例研究、网站材料、网站结构、网站样式和网站脚本等方面指导读者参与到项目建设中来。

2015-11-27

achartengine

在Android 中,有一个名为 AChartEngine的绘图库,可以供开发者调用,方便的在Android 开发中绘制如折线图、饼状图等图形。

2015-04-07

最新的ADT插件,用于android开发

最新的ADT-22.3.0.zip插件,可以免去到联网安装的麻烦,这个可以直接用来配置ADT

2014-03-15

web 开发的服务器tomcat6.0

tomcat是免费的java web学习的服务器,对于学习jsp,web的入门有很大的帮助,由于他的免费,所以很多人都在使用

2013-07-26

Struts2.0中文教程.chm

Struts2.0中文教程.chm这个文件对于学习struct2很有帮助的,而且是中文的

2013-04-21

jspsmartupload.jar

jspsmartupload.jar这个包在jsp中是一个用于文件上传很方面的jar包配合tomact的使用。。。

2013-04-21

commons-fileupload-1.3-bin.zip

jsp中的文件上传的包,commons-fileupload-1.3-bin.zip这个包在struct2里面用于文件的上传比较的多

2013-04-21

dreamweaver的使用方法

学习java web开发的人都会使用到的dreamweaver这工具,但对于初学者很难,希望这资料对你的学习有帮助

2013-01-10

java的排序问题

我们做项目的时候经常会用到java的排序,java的排序问题类型很多的,这份资料为我们详细的讲解了java的排序问题,希望对你有帮助

2013-01-10

mysql的使用语句

mysql的使用语句,是初学者的头疼的事,只份资料给出了,mysql语句的操作

2013-01-10

mysql乱码的解决方法

在安装数据库的时候我们会碰到很多的问题,这资料哟助于我们解决mysql的乱码的问题

2013-01-10

java的算法资料全集

java的算法有助于我们在编程的时候更加好快捷键,方便,代码更加的优化,任何的语言都离不开算法的

2013-01-10

windows 实验编程

在windows下的编程资料,是很好的ppt用来学习windows的相关的知识

2013-01-10

http协议解读经典

学习http协议的基础,有助于更好的学习网络的基础和编程

2012-12-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除