SAAS 开发技术项目实验(二)

文章目录

  • Docker 快速入门
    • Ubuntu 镜像操作
    • 构建在 Ubuntu 系统上运行 Nginx 的镜像
      • 使用 docker commit 命令基于容器构建镜像
      • 使用 docker build 命令基于 Dockerfile 构建镜像
      • 测试镜像构建的缓存

Docker 快速入门

Ubuntu 镜像操作

拉取最新的Ubuntn官方镜像

[root@host xwk]# docker pull ubuntu:latest
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete 
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

查看该镜像的详细信息

docker inspect ubuntu

查看该镜像的构建历史

[root@host xwk]# docker history ubuntu
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
ba6acccedd29        3 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
           3 weeks ago         /bin/sh -c #(nop) ADD file:5d68d27cc15a80653…   72.8MB              
[root@host xwk]# 

删除该镜像

[root@host xwk]# docker rmi ubuntu
Untagged: ubuntu:latest
Untagged: ubuntu@sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Deleted: sha256:ba6acccedd2923aee4c2acc6a23780b14ed4b8a5fa4e14e252a23b846df9b6c1
Deleted: sha256:9f54eef412758095c8079ac465d494a2872e02e90bf1fb5f12a1641c0d1bb78b
[root@host xwk]# 

构建在 Ubuntu 系统上运行 Nginx 的镜像

使用 docker commit 命令基于容器构建镜像

以交互方式启动 ubuntu 容器

[root@host xwk]# docker history centos
Error response from daemon: No such image: centos:latest
[root@host xwk]#  docker run -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
7b1a6ab2e44d: Pull complete 
Digest: sha256:626ffe58f6e7566e00254b638eb7e0f3b11d4da9675088f4781a50ae288f3322
Status: Downloaded newer image for ubuntu:latest

在该容器中执行以下命令安装 nginx

 更新软件包
apt update
安装 Nginx
apt install -y nginx
过程中需要选择亚洲和上海
检查nginx服务版本
nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

基于该容器生成新的镜像。
先退出容器,再执行 docker commit 命令将该容器提交并在本地生成新的镜像。

exit
[root@host xwk]# docker commit d7aaabf0105b ubuntu-with-nginx
sha256:a4d027ba7f66f4c93cfa8a9aa4f4bbfe8391a1e9be6be218cbd253ee6d358d58
[root@host xwk]# 
d7aaabf0105b可以在命令行root@d7aaabf0105b看到,每个人应该都不一样

基于新的镜像启动新容器
以交互方式启动容器之后,在容器中执行 nginx 命令启动 Nginx 服务,然后使用 ps –aux
查看相关的进程,结果表明已成功运行 Nginx 服务

[root@host xwk]# docker run -it ubuntu-with-nginx /bin/bash
root@e839944e18c1:/#
root@e839944e18c1:/# nginx
root@e839944e18c1:/# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2   4104  2168 pts/0    Ss   19:56   0:00 /bin/bash
root          9  0.0  0.1  55276  1444 ?        Ss   19:57   0:00 nginx: master process nginx
www-data     10  0.0  0.2  55600  2100 ?        S    19:57   0:00 nginx: worker process
root         11  0.0  0.1   5892  1412 pts/0    R+   19:57   0:00 ps -aux
root@e839944e18c1:/# 

[root@host bin]# docker run --rm -it -p 8000:80 ubuntu-with-nginx /bin/bash
root@afaa559381c6:/# nginx

SAAS 开发技术项目实验(二)_第1张图片

exit
[root@host bin]# docker stop ubuntu-with-nginx
ubuntu-with-nginx
[root@host bin]#

使用 docker build 命令基于 Dockerfile 构建镜像

准备构建 Dockerfile 构建上下文。
建立一个目录用作 Dockerfile 的构建上下文并准备所需的文件

[root@host bin]# mkdir ubuntu-nginx && cd ubuntu-nginx
[root@host ubuntu-nginx]# 

编写 Dockerfile 文件。
可以使用 nano 进行编辑

nano Dockerfile

# 从基础镜像 ubuntu 开始构建
FROM ubuntu:latest
# 安装 nginx
RUN apt update && apt install -y nginx
# 修改 nginx 首页信息
RUN echo "Hello! This is nginx server " > /usr/share/nginx/html/index.html
# 对外暴露 80 端口
EXPOSE 80
# 启动 nginx
CMD ["nginx", "-g", "daemon off;"]
不要忘了后面的点号,代表当前路径
docker build -t ubuntu-with-nginx:1.0 .
等待运行完毕,出现下面语句代表安装成功
Successfully built 7175ab8a67d3
Successfully tagged ubuntu-with-nginx:1.0

基于该镜像启动容器进行测试

[root@host ubuntu-nginx]# docker run --rm -d -p 8000:80 --name test-nginx ubuntu-with-nginx:1.0
03a07c0ffa98e8ee63abf0a5aafd6d6ae3a57b30829a0ca2df5082568b336ca4

SAAS 开发技术项目实验(二)_第2张图片

[root@host ubuntu-nginx]# curl 127.0.0.1:8000
<!DOCTYPE html>


Welcome to nginx<span class="token operator">!</span><<span class="token operator">/</span>title>
<style>
    body <span class="token punctuation">{</span>
        width: 35em<span class="token punctuation">;</span>
        margin: 0 auto<span class="token punctuation">;</span>
        font<span class="token operator">-</span>family: Tahoma<span class="token punctuation">,</span> Verdana<span class="token punctuation">,</span> Arial<span class="token punctuation">,</span> sans<span class="token operator">-</span>serif<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<<span class="token operator">/</span>style>
<<span class="token operator">/</span>head>
<body>
<h1>Welcome to nginx<span class="token operator">!</span><<span class="token operator">/</span>h1>
<p><span class="token keyword">If</span> you see this page<span class="token punctuation">,</span> the nginx web server is successfully installed and
working<span class="token punctuation">.</span> Further configuration is required<span class="token punctuation">.</span><<span class="token operator">/</span>p>

<p><span class="token keyword">For</span> online documentation and support please refer to
<a href=<span class="token string">"http://nginx.org/"</span>>nginx<span class="token punctuation">.</span>org<<span class="token operator">/</span>a><span class="token punctuation">.</span><br<span class="token operator">/</span>>
Commercial support is available at
<a href=<span class="token string">"http://nginx.com/"</span>>nginx<span class="token punctuation">.</span>com<<span class="token operator">/</span>a><span class="token punctuation">.</span><<span class="token operator">/</span>p>

<p><em>Thank you <span class="token keyword">for</span> <span class="token keyword">using</span> nginx<span class="token punctuation">.</span><<span class="token operator">/</span>em><<span class="token operator">/</span>p>
<<span class="token operator">/</span>body>
<<span class="token operator">/</span>html>
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>

</code></pre> 
  <p>不过这里发现首页修改并未成功。这在下面来解决。<br> 实验完毕,停止该容器,该容器会被自动删除。</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># docker stop test-nginx</span>
<span class="token function">test-nginx</span>
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>
</code></pre> 
  <h3>测试镜像构建的缓存</h3> 
  <p>Ubuntu 操作系统中使用 apt 安装 Nigix 服务器,默认的首页位于/var/www/html 目录中。继<br> 续修改 Dockerfile,将首页修改语句改为:</p> 
  <pre><code class="prism language-powershell">vim Dockerfile 

RUN <span class="token function">echo</span> <span class="token string">"Hello! This is nginx server "</span> > <span class="token operator">/</span>usr<span class="token operator">/</span>share<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>index<span class="token punctuation">.</span>html && <span class="token function">cp</span> <span class="token operator">/</span>usr<span class="token operator">/</span>share<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>index<span class="token punctuation">.</span>html <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># docker build -t ubuntu-with-nginx:2.0 .</span>
Sending build context to Docker daemon  2<span class="token punctuation">.</span>048kB
Step 1<span class="token operator">/</span>5 : <span class="token keyword">FROM</span> ubuntu:latest
 <span class="token operator">--</span><span class="token operator">-</span>> ba6acccedd29
Step 2<span class="token operator">/</span>5 : RUN apt update && apt install <span class="token operator">-</span>y nginx
 <span class="token operator">--</span><span class="token operator">-</span>> <span class="token keyword">Using</span> cache
 <span class="token operator">--</span><span class="token operator">-</span>> 1387c9ed6b73
Step 3<span class="token operator">/</span>5 : RUN <span class="token function">echo</span> <span class="token string">"Hello! This is nginx server "</span> > <span class="token operator">/</span>usr<span class="token operator">/</span>share<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>index<span class="token punctuation">.</span>html && <span class="token function">cp</span> <span class="token operator">/</span>usr<span class="token operator">/</span>share<span class="token operator">/</span>nginx<span class="token operator">/</span>html<span class="token operator">/</span>index<span class="token punctuation">.</span>html <span class="token operator">/</span><span class="token keyword">var</span><span class="token operator">/</span>www<span class="token operator">/</span>html
 <span class="token operator">--</span><span class="token operator">-</span>> Running in e123fd673fd7
Removing intermediate container e123fd673fd7
 <span class="token operator">--</span><span class="token operator">-</span>> badf623cb613
Step 4<span class="token operator">/</span>5 : EXPOSE 80
 <span class="token operator">--</span><span class="token operator">-</span>> Running in 0b7c77fdf090
Removing intermediate container 0b7c77fdf090
 <span class="token operator">--</span><span class="token operator">-</span>> 05f6b9452b59
Step 5<span class="token operator">/</span>5 : CMD <span class="token punctuation">[</span><span class="token string">"nginx"</span><span class="token punctuation">,</span> <span class="token string">"-g"</span><span class="token punctuation">,</span> <span class="token string">"daemon off;"</span><span class="token punctuation">]</span>
 <span class="token operator">--</span><span class="token operator">-</span>> Running in eee74e4f7018
Removing intermediate container eee74e4f7018
 <span class="token operator">--</span><span class="token operator">-</span>> 5b554fcd0896
Successfully built 5b554fcd0896
Successfully tagged ubuntu<span class="token operator">-</span>with<span class="token operator">-</span>nginx:2<span class="token punctuation">.</span>0
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># docker run --rm -d -p 8000:80 --name test-nginx ubuntu-with-nginx:2.0</span>
03c213dc4abee9a8404c8ad4147f1d90ff44cabcae56fd6db95deea7f23ce5f4
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>
</code></pre> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># curl 127.0.0.1:8000</span>
Hello<span class="token operator">!</span> This is nginx server 
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>
</code></pre> 
  <p><a href="http://img.e-com-net.com/image/info8/2a93840a2cd349dbab4ae49a2394953a.jpg" target="_blank"><img src="http://img.e-com-net.com/image/info8/2a93840a2cd349dbab4ae49a2394953a.jpg" alt="SAAS 开发技术项目实验(二)_第3张图片" width="465" height="267" style="border:1px solid black;"></a><br> Nginx 网站首页已经修改成功</p> 
  <p>实验完毕,停止该容器,该容器会被自动删除。</p> 
  <pre><code class="prism language-powershell"><span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># docker stop test-nginx</span>
<span class="token function">test-nginx</span>
<span class="token namespace">[root@host ubuntu-nginx]</span><span class="token comment"># </span>
</code></pre> 
 </div> 
</div>
                            </div>
                        </div>
                    </div>
                    <!--PC和WAP自适应版-->
                    <div id="SOHUCS" sid="1511847667980894208"></div>
                    <script type="text/javascript" src="/views/front/js/chanyan.js"></script>
                    <!-- 文章页-底部 动态广告位 -->
                    <div class="youdao-fixed-ad" id="detail_ad_bottom"></div>
                </div>
                <div class="col-md-3">
                    <div class="row" id="ad">
                        <!-- 文章页-右侧1 动态广告位 -->
                        <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_1"> </div>
                        </div>
                        <!-- 文章页-右侧2 动态广告位 -->
                        <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_2"></div>
                        </div>
                        <!-- 文章页-右侧3 动态广告位 -->
                        <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad">
                            <div class="youdao-fixed-ad" id="detail_ad_3"></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="container">
        <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(Linux学习,docker,ubuntu,容器)</h4>
        <div id="paradigm-article-related">
            <div class="recommend-post mb30">
                <ul class="widget-links">
                    <li><a href="/article/1899556582983790592.htm"
                           title="K8S单机部署" target="_blank">K8S单机部署</a>
                        <span class="text-muted">qq_48704877</span>
<a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>主线:部署简单的单节点k8s-sowler-博客园学习网址:为什么我不能获取到镜像,ImagePullBackoff|Kuboarddocker镜像源:https://chuxia.blog.csdn.net/article/details/145090710?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task</div>
                    </li>
                    <li><a href="/article/1899547755144081408.htm"
                           title="【Kubernets】Kubernetes 的基础知识,Pod是什么? 和容器的关系?多个容器如何在同一个 Pod 里协作?" target="_blank">【Kubernets】Kubernetes 的基础知识,Pod是什么? 和容器的关系?多个容器如何在同一个 Pod 里协作?</a>
                        <span class="text-muted">{⌐■_■}</span>
<a class="tag" taget="_blank" href="/search/Kubernetes/1.htm">Kubernetes</a><a class="tag" taget="_blank" href="/search/kubernetes/1.htm">kubernetes</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E4%BA%91%E5%8E%9F%E7%94%9F/1.htm">云原生</a>
                        <div>1.Kubernetes的核心概念(1)Node(节点)定义:Node是Kubernetes集群中的工作机器,可以是物理机或虚拟机。类型:MasterNode:运行控制平面组件(如APIServer、Scheduler)。WorkerNode:运行应用负载(如Pod)。关键组件:Kubelet:负责与MasterNode通信,管理Pod和容器。KubeProxy:负责网络代理和负载均衡。容器运行时</div>
                    </li>
                    <li><a href="/article/1899537031516712960.htm"
                           title="【C++项目】从零实现RPC框架「一」:项目准备与前置知识学习" target="_blank">【C++项目】从零实现RPC框架「一」:项目准备与前置知识学习</a>
                        <span class="text-muted">Zfox_</span>
<a class="tag" taget="_blank" href="/search/C%2B%2B%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">C++从入门到精通</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/rpc/1.htm">rpc</a><a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE/1.htm">项目</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F/1.htm">分布式</a><a class="tag" taget="_blank" href="/search/muduo/1.htm">muduo</a><a class="tag" taget="_blank" href="/search/jsoncpp/1.htm">jsoncpp</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>个人主页:Zfox_系列专栏:C++从入门到精通目录一:项⽬介绍二:技术选型三:开发环境四:Ubuntu-22.04环境搭建五:第三⽅库使⽤介绍JsonCpp库Json数据格式JsonCpp介绍JsonCpp使⽤Muduo库Muduo库是什么通俗解释Muduo库常⻅接⼝介绍TcpServer类基础介绍EventLoop类基础介绍TcpConnection类基础介绍TcpClient类基础介绍Buf</div>
                    </li>
                    <li><a href="/article/1899534887946350592.htm"
                           title="【HarmonyOS NEXT应用开发】案例140:基于RN框架实现高性能瀑布流页面" target="_blank">【HarmonyOS NEXT应用开发】案例140:基于RN框架实现高性能瀑布流页面</a>
                        <span class="text-muted">青少年编程作品集</span>
<a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/Next%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E6%A1%88%E4%BE%8B/1.htm">Next应用开发案例</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA%E4%BA%91/1.htm">华为云</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BAod/1.htm">华为od</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a>
                        <div>1.简介本文针对应用开发中相当常见的瀑布流页面场景,基于按需渲染、组件复用等技术,使用RN框架实现了高性能瀑布流页面。本文提供详细的开发步骤,帮助开发人员高效实现高性能瀑布流页面。1.1基本概念瀑布流:瀑布流布局在应用开发中非常常见。它利用容器的布局规则,将元素项目从上到下排列,形成多列参差不齐、不断加载的效果,使内容像瀑布般倾泻而下。由于其特点,瀑布流常用于展示图片资讯、购物商品和直播视频等多种</div>
                    </li>
                    <li><a href="/article/1899534130102726656.htm"
                           title="在Linux下安装部署Tomcat教程" target="_blank">在Linux下安装部署Tomcat教程</a>
                        <span class="text-muted">波波有料</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>摘要Tomcat是由Apache开发的要给Servlet容器,实现了对Servlet和JSP的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台,安全管理和Tomcat阀等。简单来说,Tomcat是一个由WEB应用程序的托管平台,可以让用户编写的WEB应用程序,别Tomcat所托管,并提供网站服务。即让用户安装步骤如下:Tomcat的安装分为2步:安装JDK环境解压并安装T</div>
                    </li>
                    <li><a href="/article/1899532740487868416.htm"
                           title="Trace Compass使用" target="_blank">Trace Compass使用</a>
                        <span class="text-muted">有趣的我</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>TraceCompass是一个用于分析和可视化LTTng、Ftrace和其他跟踪工具生成的跟踪数据的强大工具。以下是使用TraceCompass的基本步骤:安装TraceCompass在大多数Linux发行版中,可以通过包管理器安装TraceCompass。例如,在Ubuntu上,可以使用以下命令:sudoapt-getinstalltracecompassCopy2.收集跟踪数据使用LTTng或</div>
                    </li>
                    <li><a href="/article/1899532362581078016.htm"
                           title="Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_param" target="_blank">Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_param</a>
                        <span class="text-muted">若云止水</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>ngx_conf_param声明在src/core/ngx_conf_file.hchar*ngx_conf_param(ngx_conf_t*cf);实现在src\core\ngx_conf_file.cchar*ngx_conf_param(ngx_conf_t*cf){char*rv;ngx_str_t*param;ngx_buf_tb;ngx_conf_file_tconf_file;pa</div>
                    </li>
                    <li><a href="/article/1899526187080806400.htm"
                           title="HarmonyOS鸿蒙开发指南:容器组件 swiper开发指导" target="_blank">HarmonyOS鸿蒙开发指南:容器组件 swiper开发指导</a>
                        <span class="text-muted">人工智能_SYBH</span>
<a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99%E7%B3%BB%E7%BB%9F/1.htm">鸿蒙系统</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99%E5%BC%80%E5%8F%91/1.htm">鸿蒙开发</a><a class="tag" taget="_blank" href="/search/swiper/1.htm">swiper</a>
                        <div>目录创建Swiper组件添加属性设置样式绑定事件场景示例创建Swiper组件在pages/index目录下的hml文件中创建一个Swiper组件。      item1       item2       item3   </swiper&</div>
                    </li>
                    <li><a href="/article/1899520766911770624.htm"
                           title="鸿蒙HarmonyOS开发中的知识:Swiper组件" target="_blank">鸿蒙HarmonyOS开发中的知识:Swiper组件</a>
                        <span class="text-muted">代码中的爱马仕</span>
<a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/Harmony/1.htm">Harmony</a><a class="tag" taget="_blank" href="/search/OpenHarmony/1.htm">OpenHarmony</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a>
                        <div>这个对应HarmonyOS应用开发就需要我们用到Swiper组件,本篇我们就此组件进行介绍。Swiper组件介绍1,滑块视图容器,提供子组件滑动轮播显示的能力。该组件从APIVersion7开始支持。官方doc地址:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/ts-container-swiper-000</div>
                    </li>
                    <li><a href="/article/1899519129946222592.htm"
                           title="HarmonyOS NEXT开发实战:轮播Banner组件封装" target="_blank">HarmonyOS NEXT开发实战:轮播Banner组件封装</a>
                        <span class="text-muted">太空人_喜之郎</span>
<a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/OpenHarmony/1.htm">OpenHarmony</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E5%8D%8E%E4%B8%BA/1.htm">华为</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99/1.htm">鸿蒙</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>前言轮播图在每个项目中都很常见,鸿蒙中在容器组件中也提供了Swiper组件,用于子组件滑动轮播显示,和前端的使用起来也是异曲同工,我们先看下基本的用法。Swiper(){ForEach(["1","2","3","4","5","6"],(item:string)=>{Text(item.toString()).width('90%').height(160).backgroundColor(0x</div>
                    </li>
                    <li><a href="/article/1899517490329874432.htm"
                           title="Ubuntu 下 nginx-1.24.0 源码分析 - ngx_core_module" target="_blank">Ubuntu 下 nginx-1.24.0 源码分析 - ngx_core_module</a>
                        <span class="text-muted">若云止水</span>
<a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a><a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a>
                        <div>定义在src\core\nginx.cngx_module_tngx_core_module={NGX_MODULE_V1,&ngx_core_module_ctx,/*modulecontext*/ngx_core_commands,/*moduledirectives*/NGX_CORE_MODULE,/*moduletype*/NULL,/*initmaster*/NULL,/*initmo</div>
                    </li>
                    <li><a href="/article/1899517238092820480.htm"
                           title="重置 WSL Ubuntu 的 root 密码步骤" target="_blank">重置 WSL Ubuntu 的 root 密码步骤</a>
                        <span class="text-muted">四月的我</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/windows/1.htm">windows</a>
                        <div>方法一:通过PowerShell直接修改(推荐)以管理员身份打开PowerShell右键点击Windows开始菜单→选择WindowsPowerShell(管理员)。以root用户启动WSL执行命令:powershellwsl--userroot此时会直接进入WSL的root环境,无需输入密码。修改root密码在WSL终端中输入:bashpasswdroot按提示输入新密码并确认(输入时密码不可见</div>
                    </li>
                    <li><a href="/article/1899517237526589440.htm"
                           title="【Linux 22.4 ubuntu 安装cuda12.1 完整方案】" target="_blank">【Linux 22.4 ubuntu 安装cuda12.1 完整方案】</a>
                        <span class="text-muted">放飞自我的Coder</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/cuda/1.htm">cuda</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/ubuntu/1.htm">ubuntu</a>
                        <div>下载cuda12.1官网网址wgethttps://developer.download.nvidia.com/compute/cuda/12.1.1/local_installers/cuda_12.1.1_530.30.02_linux.runsudoshcuda_12.1.1_530.30.02_linux.run!import!如果已经安装驱动,则不要选择dirver那项添加环境变量vim</div>
                    </li>
                    <li><a href="/article/1899502236904517632.htm"
                           title="30天学会Go--第7天 GO语言 Redis 学习与实践" target="_blank">30天学会Go--第7天 GO语言 Redis 学习与实践</a>
                        <span class="text-muted">野生的程序媛</span>
<a class="tag" taget="_blank" href="/search/Go/1.htm">Go</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E6%88%90%E7%A5%9E%E4%B9%8B%E8%B7%AF/1.htm">后端成神之路</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>30天学会Go–第7天GO语言Redis学习与实践文章目录30天学会Go--第7天GO语言Redis学习与实践前言一、Redis基础知识1.1Redis的核心特性1.2Redis常见使用场景二、安装Redis2.1在Linux上安装2.2在Windows上安装2.3使用Docker安装Redis三、Redis常用命令3.1基本操作3.2数据结构操作字符串(String)哈希(Hash)列表(Lis</div>
                    </li>
                    <li><a href="/article/1899502238150225920.htm"
                           title="30天学会Go--第7天 GO语言 Redis 学习与实践(改)" target="_blank">30天学会Go--第7天 GO语言 Redis 学习与实践(改)</a>
                        <span class="text-muted">野生的程序媛</span>
<a class="tag" taget="_blank" href="/search/Go/1.htm">Go</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E6%88%90%E7%A5%9E%E4%B9%8B%E8%B7%AF/1.htm">后端成神之路</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/redis/1.htm">redis</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a>
                        <div>30天学会Go–第7天GO语言Redis学习与实践(改)文章目录30天学会Go--第7天GO语言Redis学习与实践(改)前言一、Redis基础知识1.1Redis的核心特性1.2Redis常见使用场景二、安装Redis2.1在Linux上安装2.2在Windows上安装2.3使用Docker安装Redis三、Redis常用命令3.1基本操作3.2数据结构操作字符串(String)扩展命令:哈希(</div>
                    </li>
                    <li><a href="/article/1899493637666959360.htm"
                           title="Dify 本地部署指南" target="_blank">Dify 本地部署指南</a>
                        <span class="text-muted">ZSYP-S</span>
<a class="tag" taget="_blank" href="/search/Dify/1.htm">Dify</a>
                        <div>一、前置条件CloneDify代码:gitclonehttps://github.com/langgenius/dify.git在启用业务服务之前,我们需要先部署PostgresSQL/Redis/Weaviate(如果本地没有的话),可以通过以下命令启动:cddockercpmiddleware.env.examplemiddleware.envdockercompose-fdocker-com</div>
                    </li>
                    <li><a href="/article/1899487838852935680.htm"
                           title="linux 系统 之centos安装 docker" target="_blank">linux 系统 之centos安装 docker</a>
                        <span class="text-muted">羱滒</span>
<a class="tag" taget="_blank" href="/search/%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E9%97%AE%E9%A2%98/1.htm">生产环境问题</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/centos/1.htm">centos</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>对于CentOS安装Docker的前置条件首先,需要安装一些必要的软件包,对于CentOS7,可以使用以下命令:sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm2添加Docker仓库设置Docker的官方仓库。对于CentOSsudoyum-config-manager--add-repohttps://download.docke</div>
                    </li>
                    <li><a href="/article/1899484305525108736.htm"
                           title="Docker 的基本概念和优势,以及在应用程序开发中的实际应用。" target="_blank">Docker 的基本概念和优势,以及在应用程序开发中的实际应用。</a>
                        <span class="text-muted">m0_65559335</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E6%9D%82%E8%B0%88/1.htm">计算机杂谈</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Docker是一个开源的容器化平台,可以将应用程序和所有其依赖的组件打包成一个容器。它的基本概念是镜像和容器。镜像是一个只读的文件,包含了需要运行的应用程序和其所需的操作系统、库文件和依赖项。镜像可以从DockerHub等公共或私有仓库中获取,也可以通过Dockerfile定义自己定制的镜像。容器是从镜像创建的运行实例,是可执行和可移植的。每个容器都是独立的,隔离的环境,可以在任何支持Docker</div>
                    </li>
                    <li><a href="/article/1899482664172318720.htm"
                           title="修改 Docker 网桥的 IP 范围" target="_blank">修改 Docker 网桥的 IP 范围</a>
                        <span class="text-muted">消码哥</span>
<a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>目录前言修改步骤前言有时候docker网桥ip与外部的ip相冲突时,外部ip是无法访问的,这时就需要我们修改Docker网桥的IP范围了,修改方法也很简单。修改步骤停止Docker服务sudosystemctlstopdocker编辑Docker的网络配置文件通常是/etc/docker/daemon.json,加入以下内容即可{"bip":"172.18.0.1/16",//Dockerdaem</div>
                    </li>
                    <li><a href="/article/1899464636206477312.htm"
                           title="Nest.js全栈开发终极实践:TypeORM+微服务+Docker构建高可用企业级应用" target="_blank">Nest.js全栈开发终极实践:TypeORM+微服务+Docker构建高可用企业级应用</a>
                        <span class="text-muted">lifire_H</span>
<a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">微服务</a><a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a>
                        <div>文章目录**第一部分:认识Nest.js与基础环境搭建****1.1什么是Nest.js?****1.2环境准备****1.3创建第一个项目****1.4启动开发服务器****1.5核心文件解读****第二部分:基础控制器与路由****2.1控制器的作用****2.2创建自定义控制器****2.3路由参数处理****2.4状态码处理****2.5完整示例****2.6测试你的API****关键概念</div>
                    </li>
                    <li><a href="/article/1899463248860737536.htm"
                           title="Docker安装与配置详解指南" target="_blank">Docker安装与配置详解指南</a>
                        <span class="text-muted">Bonita Tang</span>
<a class="tag" taget="_blank" href="/search/docker/1.htm">docker</a><a class="tag" taget="_blank" href="/search/%E5%AE%B9%E5%99%A8/1.htm">容器</a><a class="tag" taget="_blank" href="/search/%E8%BF%90%E7%BB%B4/1.htm">运维</a>
                        <div>Docker作为一款开源的应用容器引擎,通过打包应用及其依赖到一个可移植的容器中,实现了标准化的软件交付和部署流程,极大地提高了开发效率和运维的灵活性。本文将详尽地介绍如何在不同操作系统上安装Docker,并进行基本的配置,让你从零开始,快速上手Docker。Docker配置文件下载地址:https://download.csdn.net/download/qq_42072014/89481207</div>
                    </li>
                    <li><a href="/article/1899441810464370688.htm"
                           title="Uniapp使用地图的时候滑动上层的view地图也滑动" target="_blank">Uniapp使用地图的时候滑动上层的view地图也滑动</a>
                        <span class="text-muted">堕落年代</span>
<a class="tag" taget="_blank" href="/search/uniapp/1.htm">uniapp</a><a class="tag" taget="_blank" href="/search/uni-app/1.htm">uni-app</a>
                        <div>问题根源分析原生组件层级:uniapp中的原生地图组件(如)默认处于最高层级,普通视图元素无法覆盖事件冒泡机制:触摸事件会穿透到下层组件滚动冲突:当内容滚动到底部/顶部时继续滑动会触发父容器滚动完整解决方案步骤1:结构优化到这里去步骤2:样式控制/*地图容器*/.map-container{position:fixed;width:100%;height:100vh;z-index:1;/*确保低</div>
                    </li>
                    <li><a href="/article/1899439290841100288.htm"
                           title="Spring+SpringMVC项目中的容器初始化过程" target="_blank">Spring+SpringMVC项目中的容器初始化过程</a>
                        <span class="text-muted">m0_74824044</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a>
                        <div>文章目录容器初始化过程初始化过程简单概括初始化过程初始化流程图Filter、Servlet等无法自动注入Bean容器初始化过程web.xml配置文件ssmdemocontextConfigLocation/WEB-INF/spring/spring-context.xml启动spring容器org.springframework.web.context.ContextLoaderListenero</div>
                    </li>
                    <li><a href="/article/1899436642050043904.htm"
                           title="LLM大语言模型项目知识点总结——Gunicorn、Flask和Docker" target="_blank">LLM大语言模型项目知识点总结——Gunicorn、Flask和Docker</a>
                        <span class="text-muted">NLP的小Y</span>
<a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a><a class="tag" taget="_blank" href="/search/gunicorn/1.htm">gunicorn</a><a class="tag" taget="_blank" href="/search/flask/1.htm">flask</a>
                        <div>一、Flask框架1.1Blueprint流程:创建蓝图对象;在蓝图上定义路由和视图函数;在应用程序对象上注册蓝图(url_prefix参数指定蓝图的URL前缀)1.2CORS(app)Cross-OriginResourceSharing处理跨域的需求.1.3@app.before_request钩子函数,在正常执行的时候插入一些东西,先执行这个东西然后再正常执行(hook);并且先执行flas</div>
                    </li>
                    <li><a href="/article/1899430121706680320.htm"
                           title="实现课程安排模板鸿蒙示例代码" target="_blank">实现课程安排模板鸿蒙示例代码</a>
                        <span class="text-muted"></span>

                        <div>本文原创发布在华为开发者社区。介绍本示例基于Tabs容器组件、Scroll组件、Grid组件实现了上课模块的排版、下半部分使用List组件实现了第一天、第二天的任务列表、班级群界面中使用List组件实现消息的通知。实现课程安排模板源码链接效果预览使用说明如果在运行该示例代码时,出现运行不了的情况,可尝试选择DevEcoStudio菜单栏Build里面的CleanProject选项,来清理工程。实现</div>
                    </li>
                    <li><a href="/article/1899427182724313088.htm"
                           title="Spring 中的依赖注入" target="_blank">Spring 中的依赖注入</a>
                        <span class="text-muted">web13093320398</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0%E8%B7%AF%E7%BA%BF/1.htm">学习路线</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4/1.htm">阿里巴巴</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                        <div>依赖注入当某个java实例需要另一个java实例的协助时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例在spring中,创建被调用者的工作不再由调用者来完成,因此称为控制反转,创建被调用者实例的工作通常由spring容器来完成,然后注入调用者,因此也称为依赖注入注入方式通过构造器注入将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入优点:对象初始化完成后便可获得可</div>
                    </li>
                    <li><a href="/article/1899419997692817408.htm"
                           title="总结一下c++的STL容器各个容器的特点和常用方法" target="_blank">总结一下c++的STL容器各个容器的特点和常用方法</a>
                        <span class="text-muted">已是上好佳</span>
<a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a>
                        <div>序列容器1.std::vector特点:动态数组,支持随机访问,可通过下标直接访问元素,访问效率高(时间复杂度为\(O(1)\))。内存是连续分配的,在尾部插入和删除元素的效率较高(平均时间复杂度为\(O(1)\)),但在中间或头部插入和删除元素时,需要移动大量元素,效率较低(时间复杂度为\(O(n)\))。会自动管理内存,当容量不足时会自动重新分配更大的内存空间,并将原有元素复制过去。常用方法:</div>
                    </li>
                    <li><a href="/article/1899412181234020352.htm"
                           title="接口测试中遇到的最大的困难是什么?Java接口测试中用到的框架有哪些?" target="_blank">接口测试中遇到的最大的困难是什么?Java接口测试中用到的框架有哪些?</a>
                        <span class="text-muted">海姐软件测试</span>
<a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95/1.htm">接口测试</a><a class="tag" taget="_blank" href="/search/%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7/1.htm">测试工具</a>
                        <div>接口测试中的最大困难环境依赖与数据准备接口测试常依赖外部服务或数据库,测试环境不稳定(如第三方接口延迟)会导致测试结果不可靠。解决方案:使用Mock技术(如Mockito)模拟外部依赖,或通过Docker容器化测试环境,确保数据隔离。参数与逻辑复杂度复杂接口可能涉及多参数组合、加密签名(如Token、OAuth)或动态参数(如时间戳),手工构造请求容易出错。示例:电商接口需同时验证商品库存、用户优</div>
                    </li>
                    <li><a href="/article/1899401712146378752.htm"
                           title="letcode hot 100 第5题" target="_blank">letcode hot 100 第5题</a>
                        <span class="text-muted">int main*</span>
<a class="tag" taget="_blank" href="/search/letcode%E7%83%AD%E9%A2%98100/1.htm">letcode热题100</a><a class="tag" taget="_blank" href="/search/leetcode/1.htm">leetcode</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84/1.htm">数据结构</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                        <div>letcodehot100第5题题目盛最多水的容器给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例1:输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组[1,8,6,2,5,4,8,3,</div>
                    </li>
                    <li><a href="/article/1899377116475092992.htm"
                           title="ROS安装以及程序运行问题总结" target="_blank">ROS安装以及程序运行问题总结</a>
                        <span class="text-muted">niuTaylor</span>
<a class="tag" taget="_blank" href="/search/ROS/1.htm">ROS</a><a class="tag" taget="_blank" href="/search/%E8%A3%85%E6%9C%BA%26amp%3B%E5%88%B7%E6%9C%BA/1.htm">装机&刷机</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                        <div>1.总教程https://blog.csdn.net/qq_41450811/article/details/99079041sudosh-c'./etc/lsb-release&&echo"debhttp://mirrors.ustc.edu.cn/ros/ubuntu/$DISTRIB_CODENAMEmain">/etc/apt/sources.list.d/ros-latest.list'</div>
                    </li>
                                <li><a href="/article/77.htm"
                                       title="算法 单链的创建与删除" target="_blank">算法 单链的创建与删除</a>
                                    <span class="text-muted">换个号韩国红果果</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>
先创建结构体
struct student {
	int data;
	//int tag;//标记这是第几个
	struct student *next;
};
//  addone 用于将一个数插入已从小到大排好序的链中
struct student *addone(struct student *h,int x){
		if(h==NULL)  //??????
			</div>
                                </li>
                                <li><a href="/article/204.htm"
                                       title="《大型网站系统与Java中间件实践》第2章读后感" target="_blank">《大型网站系统与Java中间件实践》第2章读后感</a>
                                    <span class="text-muted">白糖_</span>
<a class="tag" taget="_blank" href="/search/java%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">java中间件</a>
                                    <div>       断断续续花了两天时间试读了《大型网站系统与Java中间件实践》的第2章,这章总述了从一个小型单机构建的网站发展到大型网站的演化过程---整个过程会遇到很多困难,但每一个屏障都会有解决方案,最终就是依靠这些个解决方案汇聚到一起组成了一个健壮稳定高效的大型系统。 
  
       看完整章内容,</div>
                                </li>
                                <li><a href="/article/331.htm"
                                       title="zeus持久层spring事务单元测试" target="_blank">zeus持久层spring事务单元测试</a>
                                    <span class="text-muted">deng520159</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/DAO/1.htm">DAO</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/jdbc/1.htm">jdbc</a>
                                    <div>今天把zeus事务单元测试放出来,让大家指出他的毛病, 
1.ZeusTransactionTest.java 单元测试 
  
package com.dengliang.zeus.webdemo.test;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import </div>
                                </li>
                                <li><a href="/article/458.htm"
                                       title="Rss 订阅 开发" target="_blank">Rss 订阅 开发</a>
                                    <span class="text-muted">周凡杨</span>
<a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/%E8%AE%A2%E9%98%85/1.htm">订阅</a><a class="tag" taget="_blank" href="/search/rss/1.htm">rss</a><a class="tag" taget="_blank" href="/search/%E8%A7%84%E8%8C%83/1.htm">规范</a>
                                    <div>  
              RSS是 Really Simple Syndication的缩写(对rss2.0而言,是这三个词的缩写,对rss1.0而言则是RDF Site Summary的缩写,1.0与2.0走的是两个体系)。 
  
RSS</div>
                                </li>
                                <li><a href="/article/585.htm"
                                       title="分页查询实现" target="_blank">分页查询实现</a>
                                    <span class="text-muted">g21121</span>
<a class="tag" taget="_blank" href="/search/%E5%88%86%E9%A1%B5%E6%9F%A5%E8%AF%A2/1.htm">分页查询</a>
                                    <div>在查询列表时我们常常会用到分页,分页的好处就是减少数据交换,每次查询一定数量减少数据库压力等等。 
按实现形式分前台分页和服务器分页: 
前台分页就是一次查询出所有记录,在页面中用js进行虚拟分页,这种形式在数据量较小时优势比较明显,一次加载就不必再访问服务器了,但当数据量较大时会对页面造成压力,传输速度也会大幅下降。 
服务器分页就是每次请求相同数量记录,按一定规则排序,每次取一定序号直接的数据</div>
                                </li>
                                <li><a href="/article/712.htm"
                                       title="spring jms异步消息处理" target="_blank">spring jms异步消息处理</a>
                                    <span class="text-muted">510888780</span>
<a class="tag" taget="_blank" href="/search/jms/1.htm">jms</a>
                                    <div>spring JMS对于异步消息处理基本上只需配置下就能进行高效的处理。其核心就是消息侦听器容器,常用的类就是DefaultMessageListenerContainer。该容器可配置侦听器的并发数量,以及配合MessageListenerAdapter使用消息驱动POJO进行消息处理。且消息驱动POJO是放入TaskExecutor中进行处理,进一步提高性能,减少侦听器的阻塞。具体配置如下: </div>
                                </li>
                                <li><a href="/article/839.htm"
                                       title="highCharts柱状图" target="_blank">highCharts柱状图</a>
                                    <span class="text-muted">布衣凌宇</span>
<a class="tag" taget="_blank" href="/search/hightCharts/1.htm">hightCharts</a><a class="tag" taget="_blank" href="/search/%E6%9F%B1%E5%9B%BE/1.htm">柱图</a>
                                    <div>第一步:导入 exporting.js,grid.js,highcharts.js;第二步:写controller 
  
@Controller@RequestMapping(value="${adminPath}/statistick")public class StatistickController {  private UserServi</div>
                                </li>
                                <li><a href="/article/966.htm"
                                       title="我的spring学习笔记2-IoC(反向控制 依赖注入)" target="_blank">我的spring学习笔记2-IoC(反向控制 依赖注入)</a>
                                    <span class="text-muted">aijuans</span>
<a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mvc/1.htm">mvc</a><a class="tag" taget="_blank" href="/search/Spring+%E6%95%99%E7%A8%8B/1.htm">Spring 教程</a><a class="tag" taget="_blank" href="/search/spring3+%E6%95%99%E7%A8%8B/1.htm">spring3 教程</a><a class="tag" taget="_blank" href="/search/Spring+%E5%85%A5%E9%97%A8/1.htm">Spring 入门</a>
                                    <div>IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。 
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明: 
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe</div>
                                </li>
                                <li><a href="/article/1093.htm"
                                       title="TLS java简单实现" target="_blank">TLS java简单实现</a>
                                    <span class="text-muted">antlove</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/keystore/1.htm">keystore</a><a class="tag" taget="_blank" href="/search/tls/1.htm">tls</a><a class="tag" taget="_blank" href="/search/secure/1.htm">secure</a>
                                    <div>  
1. SSLServer.java 
package ssl;

import java.io.FileInputStream;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.security.KeyStore;
import </div>
                                </li>
                                <li><a href="/article/1220.htm"
                                       title="Zip解压压缩文件" target="_blank">Zip解压压缩文件</a>
                                    <span class="text-muted">百合不是茶</span>
<a class="tag" taget="_blank" href="/search/Zip%E6%A0%BC%E5%BC%8F%E8%A7%A3%E5%8E%8B/1.htm">Zip格式解压</a><a class="tag" taget="_blank" href="/search/Zip%E6%B5%81%E7%9A%84%E4%BD%BF%E7%94%A8/1.htm">Zip流的使用</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E8%A7%A3%E5%8E%8B/1.htm">文件解压</a>
                                    <div>  
 ZIP文件的解压缩实质上就是从输入流中读取数据。Java.util.zip包提供了类ZipInputStream来读取ZIP文件,下面的代码段创建了一个输入流来读取ZIP格式的文件; 
ZipInputStream in = new ZipInputStream(new FileInputStream(zipFileName)); 
  
  
&n</div>
                                </li>
                                <li><a href="/article/1347.htm"
                                       title="underscore.js 学习(一)" target="_blank">underscore.js 学习(一)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/underscore/1.htm">underscore</a>
                                    <div>        工作中需要用到underscore.js,发现这是一个包括了很多基本功能函数的js库,里面有很多实用的函数。而且它没有扩展 javascript的原生对象。主要涉及对Collection、Object、Array、Function的操作。       学</div>
                                </li>
                                <li><a href="/article/1474.htm"
                                       title="java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)" target="_blank">java jvm常用命令工具——jstatd命令(Java Statistics Monitoring Daemon)</a>
                                    <span class="text-muted">bijian1013</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/jstatd/1.htm">jstatd</a>
                                    <div>1.介绍 
        jstatd是一个基于RMI(Remove Method Invocation)的服务程序,它用于监控基于HotSpot的JVM中资源的创建及销毁,并且提供了一个远程接口允许远程的监控工具连接到本地的JVM执行命令。 
        jstatd是基于RMI的,所以在运行jstatd的服务</div>
                                </li>
                                <li><a href="/article/1601.htm"
                                       title="【Spring框架三】Spring常用注解之Transactional" target="_blank">【Spring框架三】Spring常用注解之Transactional</a>
                                    <span class="text-muted">bit1129</span>
<a class="tag" taget="_blank" href="/search/transactional/1.htm">transactional</a>
                                    <div>Spring可以通过注解@Transactional来为业务逻辑层的方法(调用DAO完成持久化动作)添加事务能力,如下是@Transactional注解的定义: 
  
/*
 * Copyright 2002-2010 the original author or authors.
 *
 * Licensed under the Apache License, Version </div>
                                </li>
                                <li><a href="/article/1728.htm"
                                       title="我(程序员)的前进方向" target="_blank">我(程序员)的前进方向</a>
                                    <span class="text-muted">bitray</span>
<a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E5%91%98/1.htm">程序员</a>
                                    <div>作为一个普通的程序员,我一直游走在java语言中,java也确实让我有了很多的体会.不过随着学习的深入,java语言的新技术产生的越来越多,从最初期的javase,我逐渐开始转变到ssh,ssi,这种主流的码农,.过了几天为了解决新问题,webservice的大旗也被我祭出来了,又过了些日子jms架构的activemq也开始必须学习了.再后来开始了一系列技术学习,osgi,restful.....</div>
                                </li>
                                <li><a href="/article/1855.htm"
                                       title="nginx lua开发经验总结" target="_blank">nginx lua开发经验总结</a>
                                    <span class="text-muted">ronin47</span>

                                    <div>使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下  1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa</div>
                                </li>
                                <li><a href="/article/1982.htm"
                                       title="java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶" target="_blank">java-66-用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。颠倒之后的栈为{5,4,3,2,1},5处在栈顶</a>
                                    <span class="text-muted">bylijinnan</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a>
                                    <div>
import java.util.Stack;

public class ReverseStackRecursive {

	/**
	 * Q 66.颠倒栈。
	 * 题目:用递归颠倒一个栈。例如输入栈{1,2,3,4,5},1在栈顶。
	 * 颠倒之后的栈为{5,4,3,2,1},5处在栈顶。
	 *1. Pop the top element
	 *2. Revers</div>
                                </li>
                                <li><a href="/article/2109.htm"
                                       title="正确理解Linux内存占用过高的问题" target="_blank">正确理解Linux内存占用过高的问题</a>
                                    <span class="text-muted">cfyme</span>
<a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a>
                                    <div>Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: 
Mem:   3889836k total,  3341868k used,   547968k free,   286044k buffers 
Swap:  6127608k total,&nb</div>
                                </li>
                                <li><a href="/article/2236.htm"
                                       title="[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题" target="_blank">[JWFD开源工作流]当前流程引擎设计的一个急需解决的问题</a>
                                    <span class="text-muted">comsci</span>
<a class="tag" taget="_blank" href="/search/%E5%B7%A5%E4%BD%9C%E6%B5%81/1.htm">工作流</a>
                                    <div> 
 
     当我们的流程引擎进入IRC阶段的时候,当循环反馈模型出现之后,每次循环都会导致一大堆节点内存数据残留在系统内存中,循环的次数越多,这些残留数据将导致系统内存溢出,并使得引擎崩溃。。。。。。 
 
      而解决办法就是利用汇编语言或者其它系统编程语言,在引擎运行时,把这些残留数据清除掉。</div>
                                </li>
                                <li><a href="/article/2363.htm"
                                       title="自定义类的equals函数" target="_blank">自定义类的equals函数</a>
                                    <span class="text-muted">dai_lm</span>
<a class="tag" taget="_blank" href="/search/equals/1.htm">equals</a>
                                    <div>仅作笔记使用 
 

public class VectorQueue {

	private final Vector<VectorItem> queue;

	private class VectorItem {
		private final Object item;
		private final int quantity;

		public VectorI</div>
                                </li>
                                <li><a href="/article/2490.htm"
                                       title="Linux下安装R语言" target="_blank">Linux下安装R语言</a>
                                    <span class="text-muted">datageek</span>
<a class="tag" taget="_blank" href="/search/R%E8%AF%AD%E8%A8%80+linux/1.htm">R语言 linux</a>
                                    <div>命令如下:sudo gedit  /etc/apt/sources.list1、deb http://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu/ precise/ 2、deb http://dk.archive.ubuntu.com/ubuntu hardy universesudo apt-key adv --keyserver ke</div>
                                </li>
                                <li><a href="/article/2617.htm"
                                       title="如何修改mysql 并发数(连接数)最大值" target="_blank">如何修改mysql 并发数(连接数)最大值</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>MySQL的连接数最大值跟MySQL没关系,主要看系统和业务逻辑了 
  
方法一:进入MYSQL安装目录 打开MYSQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MYSQL即可 
  方法二:MySQL的最大连接数默认是100客户端登录:mysql -uusername -ppass</div>
                                </li>
                                <li><a href="/article/2744.htm"
                                       title="单一功能原则" target="_blank">单一功能原则</a>
                                    <span class="text-muted">dcj3sjt126com</span>
<a class="tag" taget="_blank" href="/search/%E9%9D%A2%E5%90%91%E5%AF%B9%E8%B1%A1%E7%9A%84%E7%A8%8B%E5%BA%8F%E8%AE%BE%E8%AE%A1/1.htm">面向对象的程序设计</a><a class="tag" taget="_blank" href="/search/%E8%BD%AF%E4%BB%B6%E8%AE%BE%E8%AE%A1/1.htm">软件设计</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E5%8E%9F%E5%88%99/1.htm">编程原则</a>
                                    <div>单一功能原则[
编辑]            
SOLID    原则    
 
 单一功能原则 
 开闭原则 
 Liskov代换原则 
 接口隔离原则 
 依赖反转原则 
      
 
 查   
 论   
 编 
      
在面向对象编程领域中,单一功能原则(Single responsibility principle)规定每个类都应该有</div>
                                </li>
                                <li><a href="/article/2871.htm"
                                       title="POJO、VO和JavaBean区别和联系" target="_blank">POJO、VO和JavaBean区别和联系</a>
                                    <span class="text-muted">fanmingxing</span>
<a class="tag" taget="_blank" href="/search/VO/1.htm">VO</a><a class="tag" taget="_blank" href="/search/POJO/1.htm">POJO</a><a class="tag" taget="_blank" href="/search/javabean/1.htm">javabean</a>
                                    <div>POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Plain Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比POJO复杂很多,JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被</div>
                                </li>
                                <li><a href="/article/2998.htm"
                                       title="SpringSecurity3.X--LDAP:AD配置" target="_blank">SpringSecurity3.X--LDAP:AD配置</a>
                                    <span class="text-muted">hanqunfeng</span>
<a class="tag" taget="_blank" href="/search/SpringSecurity/1.htm">SpringSecurity</a>
                                    <div>前面介绍过基于本地数据库验证的方式,参考http://hanqunfeng.iteye.com/blog/1155226,这里说一下如何修改为使用AD进行身份验证【只对用户名和密码进行验证,权限依旧存储在本地数据库中】。 
  
将配置文件中的如下部分删除: 
  <!-- 认证管理器,使用自定义的UserDetailsService,并对密码采用md5加密-->  
  </div>
                                </li>
                                <li><a href="/article/3125.htm"
                                       title="mac mysql 修改密码" target="_blank">mac mysql 修改密码</a>
                                    <span class="text-muted">IXHONG</span>
<a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a>
                                    <div>$ sudo /usr/local/mysql/bin/mysqld_safe –user=root & //启动MySQL(也可以通过偏好设置面板来启动)$ sudo /usr/local/mysql/bin/mysqladmin -uroot password yourpassword //设置MySQL密码(注意,这是第一次MySQL密码为空的时候的设置命令,如果是修改密码,还需在-</div>
                                </li>
                                <li><a href="/article/3252.htm"
                                       title="设计模式--抽象工厂模式" target="_blank">设计模式--抽象工厂模式</a>
                                    <span class="text-muted">kerryg</span>
<a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a>
                                    <div>抽象工厂模式: 
 
    工厂模式有一个问题就是,类的创建依赖于工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则。我们采用抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。 
 
    总结:这个模式的好处就是,如果想增加一个功能,就需要做一个实现类,</div>
                                </li>
                                <li><a href="/article/3379.htm"
                                       title="评"高中女生军训期跳楼”" target="_blank">评"高中女生军训期跳楼”</a>
                                    <span class="text-muted">nannan408</span>

                                    <div>   首先,先抛出我的观点,各位看官少点砖头。那就是,中国的差异化教育必须做起来。 
   孔圣人有云:有教无类。不同类型的人,都应该有对应的教育方法。目前中国的一体化教育,不知道已经扼杀了多少创造性人才。我们出不了爱迪生,出不了爱因斯坦,很大原因,是我们的培养思路错了,我们是第一要“顺从”。如果不顺从,我们的学校,就会用各种方法,罚站,罚写作业,各种罚。军</div>
                                </li>
                                <li><a href="/article/3506.htm"
                                       title="scala如何读取和写入文件内容?" target="_blank">scala如何读取和写入文件内容?</a>
                                    <span class="text-muted">qindongliang1922</span>
<a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/scala/1.htm">scala</a>
                                    <div>直接看如下代码: 
 
package file

import java.io.RandomAccessFile
import java.nio.charset.Charset

import scala.io.Source
import scala.reflect.io.{File, Path}

/**
 * Created by qindongliang on 2015/</div>
                                </li>
                                <li><a href="/article/3633.htm"
                                       title="C语言算法之百元买百鸡" target="_blank">C语言算法之百元买百鸡</a>
                                    <span class="text-muted">qiufeihu</span>
<a class="tag" taget="_blank" href="/search/c/1.htm">c</a><a class="tag" taget="_blank" href="/search/%E7%AE%97%E6%B3%95/1.htm">算法</a>
                                    <div>中国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁,母,雏各几何? 
代码如下: 
#include <stdio.h>
int main()
{
	int cock,hen,chick;                               /*定义变量为基本整型*/
	for(coc</div>
                                </li>
                                <li><a href="/article/3760.htm"
                                       title="Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode" target="_blank">Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详细介绍AvatarNode</a>
                                    <span class="text-muted">wyz2009107220</span>
<a class="tag" taget="_blank" href="/search/NameNode/1.htm">NameNode</a>
                                    <div>正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 
1. Secondary NameNode 
原理:Secondary NN会定期的从NN中读取editlog,与自己存储的Image进行合并形成新的metadata image 
优点:Hadoop较早的版本都自带,</div>
                                </li>
                </ul>
            </div>
        </div>
    </div>

<div>
    <div class="container">
        <div class="indexes">
            <strong>按字母分类:</strong>
            <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a
                href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a
                href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a
                href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a
                href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a
                href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a
                href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a
                href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a
                href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a>
        </div>
    </div>
</div>
<footer id="footer" class="mb30 mt30">
    <div class="container">
        <div class="footBglm">
            <a target="_blank" href="/">首页</a> -
            <a target="_blank" href="/custom/about.htm">关于我们</a> -
            <a target="_blank" href="/search/Java/1.htm">站内搜索</a> -
            <a target="_blank" href="/sitemap.txt">Sitemap</a> -
            <a target="_blank" href="/custom/delete.htm">侵权投诉</a>
        </div>
        <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved.
<!--            <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>-->
        </div>
    </div>
</footer>
<!-- 代码高亮 -->
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script>
<script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script>
<link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/>
<script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script>





</body>

</html>