自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 Docker进阶教程 - 6 Portainer

Portainer是一个。

2024-03-22 09:15:00 905

原创 Docker进阶教程 - 5 Docker Compose

Docker Compose 是 Docker 公司推出的一个工具,用于简化多容器应用程序的定义、运行和管理。通过一个 YAML 配置文件(通常是),用户可以定义应用程序的各种服务、网络和卷,并通过一条命令就可以启动、停止一组相关联的多个容器。

2024-03-21 09:15:00 675

原创 Docker进阶教程 - 4 Docker网络

前面说了,因为容器的 IP 会发生变化,所以不能使用容器的 IP 来进行容器间的通信,需要使用自定义网络。首先需要创建一个自定义网络,例如创建一个。# 创建doubi-network网络 docker network create doubi-network创建完网络,可以通过查看到存在的网络:这里需要注意,我们创建了一个新的网络,也是桥接模式的,但是它是一个新的桥接网络,和docker0是独立开的,他们可以有不同的配置和属性,从上面也可以看到,他们是不同的网段的。这里我们创建两个容器,ubuntu-1。

2024-03-20 09:15:00 716

原创 Docker进阶教程 - 3 虚悬镜像

通常在构建的过程中,取消构建、构建出现问题的时候,会出现异常的镜像,这种镜像没有名称和标签。因此,这些镜像被称为虚悬镜像,因为它们“悬浮”在Docker中,没有被任何容器所使用,也不会被Docker清理工具删除。虚悬镜像的产生概率不高,但一旦生成,可能会对系统造成一些潜在的风险。因此,一旦发现虚悬镜像,应该立即删除。什么是虚悬镜像(dangling image)?

2024-03-19 09:00:00 264

原创 最细致最简单的 Arm 架构搭建 Harbor

也不知道为什么不更新,我看到有回复说是团队资源有限,如果你看到有推出或更新 arm 架构版本,麻烦发邮件给我,我会更新笔记。提示不要使用 localhost,因为 Harbor 需要被外部客户端访问。可以在这里修改登录密码,当然后面登录后也可以在页面中进行修改。文件中配置的密码(Harbor12345)来登录。文件修改好了,现在可以启动运行了,直接运行。来访问,遇到证书警告,直接同意。如果遇到权限问题,可以使用。也可以在自己的主机上修改。使用 admin 和。中配置了域名,所以在。解压的文件夹下有一个。

2024-03-18 20:27:59 735

原创 Docker进阶教程 - 2 Docker部署SpringBoot项目

另外如果项目中用到数据库或redis缓存等组件,注意修改地址,不要为 localhost,因为部署到 docker 中,是不在一个容器中的,所以要写明数据库或缓存的地址。我们可以在项目根目录下创建一个 docker 文件夹,然后在这个文件夹中编写一个 Dockerfile 文件,并将 jar 包拷贝并放在这个目录下。其实这里主要是比较清晰的管理 docker 文件,这里的两个文件后面是需要拷贝到 Docker 宿主机上的。这一步不影响后面的构建,只是为了将 Dockerfile 比较清晰的保存在项目下。

2024-03-18 09:00:00 879

原创 Docker进阶教程 - 1 Dockerfile

什么意思呢?

2024-03-17 20:01:37 1157

原创 Docker基础教程 - 14 Docker进阶

请查看。

2024-03-17 19:59:30 179

原创 Docker基础教程 - 13 常用容器部署-Nginx-https

或者将 dist 解压到 html 文件夹,然后修改 conf.d 文件夹中的 default.config 文件,修改根目录映射 html 下的 dist。首先将 vue 项目中打包生成 dist 文件夹中的内容,全部拷贝到与nginx的html相映射的文件夹中,然后重启docker内的 nginx。我们首先通过 nginx 镜像运行一个简单的容器,将简单的容器中的配置文件复制到宿主机中,然后删除简单的容器,重新使用上面的命令运行我们的容器。下面针对的是生成本地运行的证书文件。

2024-03-13 08:30:00 770

原创 Docker基础教程 - 12 常用容器部署-Nginx

或者将 dist 解压到 html 文件夹,然后修改 conf.d 文件夹中的 default.config 文件,修改根目录映射 html 下的 dist。首先将 vue 项目中打包生成 dist 文件夹中的内容,全部拷贝到与nginx的html相映射的文件夹中,然后重启docker内的 nginx。我们首先通过 nginx 镜像运行一个简单的容器,将简单的容器中的配置文件复制到宿主机中,然后删除简单的容器,重新使用上面的命令运行我们的容器。下面介绍一下常用容器的部署。当成文件夹来处理,那么把宿主机的。

2024-03-12 08:15:00 249

原创 Docker基础教程 - 11 常用容器部署-MySQL

MariaDB 是由 MySQL 的创始人之一Michael Widenius 领导的开源社区开发的分支。此外,MariaDB还添加了一些新功能和改进,例如更好的性能优化和存储引擎支持。将主机的 3306 端口映射到容器的 3306 端口,这样你就可以通过主机的 3306 端口访问容器内的数据库服务。将容器内数据库的数据保存到宿主机,这样即使容器被删除,数据也不会丢失,否则只能跑路了。:指定要运行的 Docker 镜像的名字,即 MariaDB 镜像。)映射到容器内,以确保容器内的时间和主机同步。

2024-03-11 08:30:00 551

原创 Docker基础教程 - 10 常用容器部署-Redis

启动容器后就可以链接到 Redis 服务了,需要使用在配置文件中配置的密码。如果找不到可以下载指定版本的 redis 安装包,在安装包中找到。配置文件修改好了,下面可以启动容器了,在启动的时候,指定配置文件。下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。Redis 默认只能在本地访问,所以我们需要使用配置文件。在 Docker 中部署 Redis 容器。可以从官网下载相应版本的配置文件,

2024-03-10 08:15:00 230

原创 Docker基础教程 - 8 镜像仓库

这是因为标签是用来标识镜像的,当给一个已有的镜像打上新的标签时,Docker 会复制该镜像并创建一个新的镜像,带有新的标签。因此,打完标签后,会生成一个新的镜像,推送镜像到远程仓库的时候,就是推送的这个镜像。在安装 Docker 的时候,默认使用的是 DockerHub,后来为了提升速度,配置的镜像仓库是使用阿里云的镜像仓库,拉取的是别人制作的镜像,下面讲解一下制作我们自己的镜像,并将制作的镜像提交到远程镜像仓库。在上面我们制作了我们自己的镜像,如何将这个镜像给其他的同事使用,或者在其他的服务器使用?

2024-03-09 08:15:00 601

原创 Docker基础教程 - 9 常用容器部署-Tomcat

tomcat 访问到的8080带三脚猫的首页,是在 webapps 目录下的,但是新版的 tomcat 的 webapps 下面是空,静态资源被放置到。镜像下载完成就,就可以启动容器了。使用后台模式启动容器,并映射 8080 端口,并进行相应的容器卷挂载。下面介绍一下常用容器的部署。可以先简单了解下,用到再来详细查看。容器启动后,访问宿主机的 8080 端口,会报 404 错误。拷贝完成后,重新刷新页面,出现了三脚猫。目录下了,所以就找不到首页了。我们可以进入到容器,将。

2024-03-09 08:00:00 415

原创 Docker基础教程 - 7 容器数据卷

我们在运行容器的时候,产生的数据都是保存在容器内部的。如果使用Docker来运行mysql容器,数据都保存在容器内部,此时删除容器,数据就全部没了!没了!了!比删库跑路还容易,简直离谱他妈给离谱开门——离谱到家了。所以需要容器卷,将主机的目录挂载到容器内部(宿主机目录相当于一个外部移动硬盘一样),将容器的目录与宿主机的目录进行映射,将数据保存到宿主机上,这样,即使容器被删除,挂载到容器卷中的数据仍然会被保留在宿主机上。使用容器卷既可以实现容器数据的持久化,也可以在容器间共享数据。

2024-03-08 07:45:00 846

原创 Docker基础教程 - 6 Docker平台架构

之后,内存的使用权会从这一层转移到内核,然后这一层就会被卸载,释放出存储空间。这种分层的设计使得镜像的复用和共享变得非常容易,比如有多个镜像都从相同的Base Image构建而来,那么宿主机只需在磁盘上保留一份Base Image,同时内存中也只需要加载一份Base Image,这样就可以为所有的容器服务了,而且镜像的每一层都可以被共享,减小了传输和存储的开销。容器,就是一个运行的 Redis 了,每个容器之间是相互隔离的,就像一个个的集装箱,所以 Docker 的图标就是一个鲸鱼上面有很多的集装箱。

2024-03-07 07:45:00 853

原创 Docker基础教程 - 5 其他命令

具体命令是上面查看帮助文档中列出的命令,通过命令文档可以查看命令需要的参数,这个还是比较实用的。前面镜像和容器的命令已经介绍的差不多了,还有一些其他的一些命令,简单了解一下。下面是控制 Docker 服务的一些命令,这是属于Linux命令。通过这个命令可以看到 docker 有哪些命令和参数。

2024-03-06 07:45:00 215

原创 Docker基础教程 - 4 容器命令

而如果我在当前 Ubuntu 系统中通过 Docker 创建 Ubuntu 容器,我可以创建多个Ubuntu 容器,那就相当于我有了多个节点,再使用负载均衡,这样我在更新系统的时候,可以保证有一个节点运行,从而保证服务一直运行。,运行完成,查看运行中的容器发现没有对应的容器,因为 Ubuntu 和 CentOS 容器是交互式容器,没有前台进程就会退出,所以启动完就退出了。我们需要在启动容器的时候,将容器的端口映射到主机的端口上,这样就可以通过访问主机端口来访问到容器的端口,进而访问到docker中的服务。

2024-03-05 07:45:00 1807

原创 Docker基础教程 - 3 镜像命令

这是因为还存在以这个镜像创建的容器。我们要删除镜像,需要先删除用这个镜像创建的容器(删除容器后面再讲),或者使用强制删除。上面的 hello-world 镜像是安装 docker 的时候,运行的 hello-world 镜像。显示本地的镜像信息中,包含了镜像的名称、版本标签、镜像ID,什么时候创建的,镜像的大小。搜索会列出很多的镜像,分别是不同的账户、组织提交的,包括名称、描述等信息,在删除之前先查看一下本地的镜像,然后通过镜像的 ID 进行删除。从容器仓库下载镜像,首先需要搜索镜像,查看镜像是否存在。

2024-03-04 08:45:00 578

原创 Docker基础教程 - 2 Docker安装

下面进行 Docker 环境的安装,正常情况下 Docker 都是运行在 Linux 服务器上的,因为 Docker 依赖于宿主机的操作系统内核,也就是依赖已经存在并运行的 Linux 内核环境,Docker 只是在已经运行的 Linux 上制造了一个隔离的文件环境,所以所在的主机必须是 Linux 操作系统。,但是服务器是在国外的,在国内使用下载镜像会很慢,所以我们配置阿里云镜像服务后,下载镜像会快很多。镜像,如果有会直接运行镜像,如果没有会下载镜像,下载完成再运行镜像。镜像,会在本地查看有没有。

2024-03-03 19:45:00 662

原创 Docker基础教程 - 1 Docker简介

Docker是一个强大的容器化平台,让你能够更轻松地构建、部署和运行应用程序。下面我们来学习 Docker。

2024-03-03 10:27:15 866

原创 Git教程 - 11 最佳实践【完结】

有了 develop 分支,我们开发的时候在 develop 分支上开发新功能,开发完成的代码,合并到 master 分支,master 分支始终是一个可以发布的分支。发布新版本后,将release分支合并到 master 分支 和 develop 分支,并给master分支打上tag,然后将 release分支删除。创建release 预发布分支后,需要对预发布版本进行测试,如果测试出问题,可以直接在 release 分支进行修改,也可以创建分支进行修改。master 分支是一个可以发布的稳定版本分支;

2024-01-28 19:30:00 759

原创 Git教程 - 10 IDEA中操作git

如果没有远程仓库,因为我们安装了 gitee 插件,那么可以直接将项目推送到 gitee,插件会帮我们自动创建远程仓库,非常方便。打开 IDEA 的设置界面,找到 git 的配置,设置 git 的安装目录,然后点击测试,看能否显示 git 的版本信息。然后直接点击 Share 就可以了,这样就创建了远程仓库,并关联到了远程仓库,就可以推送代码到远程仓库。首先打开提交界面,然后勾选要提交的文件,填写提交信息,就可以提交了,还可以提交并直接推送到远程仓库。然后填写远程仓库的地址,和本地存储的地址。

2024-01-27 19:30:00 275

原创 Git教程 - 9 .gitignore

默认情况下,我们一个项目被 git 管理,git 是会监视项目下所有的文件的。但是项目下有一些文件我们不想被 git 追踪,例如一些敏感文件、编译文件或者一些临时的依赖文件,这样的话,我们就可以通过。只对尚未被Git跟踪的文件起作用,一旦文件已经被Git跟踪并提交到版本库中,即使将其加入。这会将文件从 Git 的跟踪列表中删除,不会删除文件。这样配置的话,重新查看文件的状态,可以看到不显示。只对尚未被 Git 管理的文件生效。,Git 仍然会跟踪这些文件的更改。文件是我们新添加的,需要提交。

2024-01-26 19:30:00 653

原创 Git教程 - 8 标签

我们每次提交都会产生提交记录,在实际的开发中,会有很多的记录,我们可以在发布版本的时候,给当前提交的记录打上一个标签,后面可以根据标签快速的找到当前的版本。如果没有标签,就很难找到发布的各个版本对应的代码。添加标签不会产生任何的影响,通过给提交的节点添加标签,相当于给节点添加了一个别名,之前通过 commit ID 操作的地方,可以使用标签来操作,这样就很方便的操作和找到想要的提交节点。删除本地标签和删除远程标签是两个独立的操作,删除本地标签不会影响远程标签,删除远程标签页不会影响本地标签。

2024-01-25 19:30:00 527

原创 Git教程 - 7 回到过去

放在 C4 后面还是 C6 后面。例如使用 git reset 到第二次提交,现在不想回退了,想重新回到第四次提交,使用 git log 查看,没有第四次的提交记录,无法获取第四次的 commit id。如果没有远程仓库,只在本地操作的话,在使用 git reset 以后,那么使用 git log 就看不到之后的提交记录了,如果不想回退了,就无法返回之后的提交了。首先我们进行了4次提交,并推送到了远程仓库,然后进行了第5次编辑,并暂存到了暂存区,然后进行了第6次编辑,第6次的编辑还在工作区。

2024-01-24 19:30:00 821

原创 Git教程 - 6 远程仓库

因为你可能一开始从远程仓库 pull 的代码,然后进行修改,但是在你 push 之前,别人可能又 push 了代码到了远程的仓库,你本地的代码不是最新的,所以 push 可能会失败。所以我们在 push 之前要保证本地的代码是最新版本,需要先 pull 一下,pull 的时候可能会有冲突,因为别人也修改了代码,合并冲突,然后再提交,提交完成,再 push。前面在学习的时候,都是在本地操作的,提交也是提交到本地的仓库,也就是在项目下生成的。克隆到本地的仓库,是不需要初始化的,直接可以修改代码,然后直接使用。

2024-01-23 08:00:00 863

原创 Git教程 - 5 变基

在实际的开发中,一个项目周期很长,会存在反复的创建、修改、合并、删除分支的操作,可能会再分支上创建分支等等,使用merge合并分支是,在提交记录中会将所有的分支创建合并等过程全部显示出来,会导致记录很混乱,查找很麻烦。最终就变成一条线了。但是如果要变基的分支已经提交到了远程仓库,那么尽量不要变基,因为提交到了远程仓库可能会被别人拿下来修改,如果此时变基,提交记录会更混乱。然后切换到主分支进行了1次修改和提交,再切换到 bug1 分支进行一次修改和提交,然后再切换到主分支进行了1次修改和提交。

2024-01-22 08:00:00 1861

原创 Git教程 - 4 分支

其实正常的情况,应该是 master 分支始终是一个随时可以发布的,是线上版本的分支,而我们还维护一个分支叫 develop 分支,在这个分支上开发最新的功能,如果此时有线上发布的版本有bug,那么我们就切换到 master 分支上进行修改,然后发布 master 分支上的代码。但是其实我们切换到 master 分支修改bug的时候,还需要重新创建一个 bug 分支,在bug分支上修改bug,修改完成,再将bug分支的代码合并到 master 分支,然后再发布master分支。

2024-01-21 22:47:02 822

原创 Git教程 - 3 VSCode中操作git

在VSCode中,没有暂存任何文件,直接点解 Commit 按钮,会弹出如下提示,就是选择是否直接。插件,可以在 VSCode 插件中搜索安装,还有一些其他的 git 插件,都可以尝试,看哪个好用。在上面我们是通过命令行来操作 git,但是在实际的开发中,一般都是使用图形化界面来操作。安装了 Git Graph,可以打开并查看提交记录,有哪些分支,当前所在的分支等信息。后面的操作都在 VSCode的命令行中执行,这样编辑文件操作都比较方便。将文件加入到暂存,然后填写信息,点击 Commit 按钮提交。

2024-01-21 22:44:41 390

原创 Git教程 - 2 git基本使用

代码提交后,此时再次查看工作空间的状态,会发现工作空间没有东西要提交,工作树是干净的(工作书我们后面再讲)。不要觉得麻烦,实际开发中,不可能修改一行代码提交一次,一般完成一个功能,或每天提交,所以没那么频繁。,以这个文件夹来模拟实际开发中的项目,通过对文件夹中的文件的修改进行追踪,来实现版本管理。如果在工作区修改了文件,还没有提交,现在修改的内容不想要了,可以将文件恢复到最近一次。文件提交到仓库后,工作区的文件就和仓库的文件一致了,所以就变成未修改了。

2024-01-21 22:43:38 1000

原创 Git教程 - 1Git 简介

git 就是一个版本管理工具,我们在写代码的时候,不可能将代码一次性写好,可能需要来回修改,老板还有可能说用回之前的版本,所以我们需要将每次的修改都记录下来,总不能每次都复制保存一份吧,那还了得。而且在多人开发的时候,每个人开发不同的功能,还有可能多人修改同一个功能,多人之间协同开发,如何将代码合并到一起呢,总不能拿U盘相互拷贝,然后大家坐在一起合并吧。

2024-01-21 22:41:59 357

原创 Quartz教程 - 9动态调度【完结】

该方法接收到 ScheduleJob 对象,通过该对象来创建定时任务,创建定时任务使用的就是前面的任务类,将 ScheduleJob 对象传递到任务类中,每次触发任务,在任务类中都通过传递的 ScheduleJob 对象,使用。正常情况下,我们是有一个任务列表页面,显示所有的任务,可以对这些任务进行操作,也就是一个 CRUD 的功能。在 Service 中实现任务数据的维护,更新数据库的数据,同时调用 Quartz 工具类,修改任务的调度。上面只是一个工具类,我们需要在维护任务的时候,调用上面的工具类。

2024-01-11 20:20:15 911

原创 Quartz教程 - 8持久化与集群

Quartz 持久化需要使用数据库,并在数据库中建立一些表,我们可以将这些表建在业务数据库中,也可以将这些表建立在独立的数据库中,如果建立在独立的数据库中,那么我们的系统需要配置多个数据源。运行起来后,你有可能会发现定时任务一直只会在一个项目定时执行,另外一个项目没有动静,这其实是因为另一个项目一直抢不到执行的权限,这个其实是没有问题的,如果关闭调抢到执行权限的项目,你就会发现另一个项目就会执行了。默认情况下 Quartz 是保存在内存中的,如果不做持久化,系统停止或重启,任务将丢失;

2024-01-11 20:09:45 804

原创 Quartz教程 - 7SpringBoot集成Quartz

上面使用的是原生的方法演示 Quartz 的时候,但是在实际的使用中,肯定不会像前面那样使用,一般会在 Spring 项目中或 SpringBoot 项目中进行使用,下面演示一下在 SpringBoot 项目中使用 Quartz。首先创建一个 Quartz 的配置类,在这个配置类中,创建 JobDetail 和 Trigger,并将他们添加到Spring 容器中。在实际使用中,我们可以在 Job 类中注入我们业务 Service 的依赖,这样就可以调用 Service 中的方法,执行业务逻辑了。

2024-01-11 20:05:10 380

原创 Quartz教程 - 6调度器

这些是 Quartz 中常见的内置日历实现,每种日历都有其特定的用途和功能。除了这些内置的日历实现外,你还可以实现自定义的。如果我们想在某些时候不执行任务,例如有一个任务,一年每天都会执行,但是想在节假日不执行,该如何做呢?通过实现这个接口,你可以定义自己的日历逻辑,用于控制任务的执行时间。在Quartz 中是一个接口,它有很多的实现类,我们这里演示一下,在指定的日期不执行任务。接口定义了日历的抽象,而具体的日历实现则有多种方式,其中包括一些内置的和自定义的实现。,则不会进行替换,而是保留现有的。

2024-01-11 19:27:49 348

原创 Quartz教程 - 5触发器

SimpleTrigger 只能定义按照指定频率执行的任务,如果要定义复杂的执行规则,SimpleTrigger 是无法支持的,一般我们用的最多的就是。在实际使用中,根据您的需求选择合适的Misfire策略非常重要,这可以确保即使在意外情况下,任务也能够按照期望的方式执行。作用:立即执行所有错过的触发,错过了100个,一下子把错过的100个全部执行了,然后按照原计划执行任务。上面的代码和之前的 HelloWorld 基本是一样的,只是使用了不同的触发器。在一个字段中可以指定多个数值,例如在星期字段中,

2024-01-11 19:26:20 887

原创 Quartz教程 - 4Job

首先从 JobDataMap 中获取到 count,然后修改 count 的值,然后重新将 count 的值保存到 JobDataMap 中,这样下一次任务执行的时候,就可以获取到更新后的值。为什么要每次创建一个新的对象呢,因为可能任务执行比较久,一次任务没执行完,下一次任务就开始执行的问题,如果使用的是同一个对象,就可能存在并发问题。注解,让任务串行执行,否则当前任务没有执行完成,下一次任务执行的时候,通过 JobDataMap 获取到的值是没有被更新的。注解,上一次执行完成,才会执行下一次任务。

2024-01-11 19:25:13 968

原创 Quartz教程 - 3传递参数

可以通过 JobExecutionContext 对象获取到 JobDetail 和 Trigger 的信息,然后获取到 JobDataMap 的信息。可以获取 JobDetail 和 Trigger 传递的参数合并后的结果,如果传递参数的时候 JobDetail 和 Trigger 传递了相同的 key 值,那么 Trigger 中传递的参数会覆盖 JobDetail 中的参数。如果我们想在创建任务和触发器的时候,给任务传递一些参数,在执行任务的时候,可以读取到这些参数,那么该如何处理呢?

2024-01-11 19:23:19 571

原创 Quartz教程 - 2HelloWorld

任务详情就是 JobDetail,这个 JobDetail 其实是对 Job 的包装和描述,每次执行任务,调度器就会根据 JobDetail 的描述信息通过反射创建一个新的 Job 实例,这样可以规避并发访问的问题。,也存在版本兼容问题,使用1.4.x 和 1.3.x都不行,需要使用 1.2.x 的。,quartz 的日志是打印不出来的,但是要注意版本问题,因为 quartz 中的。的版本是 1.7.x 的,这里我使用 2.x.x 版本的。类中只有一个方法,实现了 Job 类中的。

2024-01-11 19:21:55 303

Dart基础笔记,免费下载,给个好评,在线阅读地址:https://www.doubibiji.com

Dart基础笔记,免费下载,给个好评,在线阅读地址:https://www.doubibiji.com

2024-03-06

Docker Compose演示中的SpringBoot项目源码和jar包

Docker Compose演示的SpringBoot项目 教程地址:https://www.doubibiji.com/Docker-Adv/05-DockerCompose.html

2024-03-01

Quartz动态调度示例

Quartz动态调度示例,Quartz 教程 笔记 可参考 https://www.doubibiji.com/

2024-01-06

Dart基础教程PDF,免费下载,给个好评,谢谢!

Dart基础教程,学习Flutter必备

2023-08-12

HTML5基础教程PDF版

HTML5基础教程PDF版 可以通过链接直接访问:http://doubibiji.com/#/html5/HTML5 如果有帮助,麻烦给个好评!!!

2023-07-22

Python基础教程笔记

Python基础教程PDF版 可以通过链接直接访问:http://doubibiji.com/#/python/01-Python%E7%AE%80%E4%BB%8B/01-Python%E7%AE%80%E4%BB%8B 如果有帮助,麻烦给个好评!!!

2023-04-09

Android 自定义通知栏 更新通知栏进度条

Android 实现自定义通知栏,并不断更新通知栏的进度条,模拟下载效果。 注:只是模拟下载进度,没有下载功能。

2014-10-29

Android ViewPager和Fragment 实现滑动切换页面

使用ViewPager + Fragment实现滑动切换页面的简单样例

2014-10-27

Android Fragment ActionBar实现tab标签切换页面

Android 使用Fragment,ActionBar 实现tab标签切换页面的一个简单样例

2014-04-23

ios消息推送 使用notnoop消息推送

使用notnoop进行IOS消息推送,一个样例

2014-04-03

jstl.jar包

jstl.jar,支持在项目中使用JSTL和EL表达式

2013-07-01

standard.jar

standard.jar包,支持在项目中使用JSTL和EL表达式

2013-07-01

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

TA关注的人

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