Safari配置WebApp----添加启动图和桌面图标让你的WebApp在ios设备上体验如原生一样...

现在很多开发者的Web应用程序的设计样式和交互类似本机应用程序,例如,它的缩放比例适合iOS上的整个屏幕。当用户将其添加到主屏幕时,您可以通过使其看起来像本机应用程序一样,在iOS上为您的Web应用程序定制Safari。您可以使用其他平台忽略的iOS设置来执行此操作。

例如,您可以为添加到iOS主屏幕时用于表示Web应用程序的图标指定图标,如指定Web Clip的网页图标所述。当您的Web应用程序从主屏幕启动时,您还可以最小化iOS用户界面上的Safari,如更改状态栏外观和隐藏Safari用户界面组件(搜索栏及工具栏)。这些都是可选设置,添加到您的网页内容时会被其他平台忽略。

阅读Web应用程序的“视口设置”,了解如何在iOS上设置Web应用程序的视口。

指定Web应用程序的网页图标

您可能希望用户能够将您的Web应用程序或网页链接添加到ios设备主屏幕。这些由图标表示的链接称为Web剪辑。遵循这些简单的步骤来指定一个图标来表示您的iOS应用程序或网页。

要为整个网站(网站上的每个页面)指定一个图标,请将一个图标文件以PNG格式放置在名为root的文档文件夹 apple-touch-icon.png
要为单个网页指定一个图标或者将网站图标替换为网页特定的图标,请向该网页添加一个链接元素,如下所示:


在上面的例子中,custom_icon.png用你的图标文件名替换。
要为不同的设备分辨率指定多个图标(例如,同时支持iPhone和iPad设备),请sizes按以下方式为每个链接元素添加一个属性:





使用最适合设备的图标。有关当前图标大小和建议,请参阅iOS人机界面指南的“图形”一章。
如果没有与设备的建议尺寸相匹配的图标,则会使用大于推荐尺寸的最小图标。如果没有大于推荐尺寸的图标,则使用最大的图标。

如果没有使用链接元素指定图标,则会在网站根目录中搜索带有apple-touch-icon...前缀的图标。例如,如果设备的适当图标大小为58 x 58,系统将按以下顺序搜索文件名:

  1. apple-touch-icon-80x80.png
  2. apple-touch-icon.png

注意: iOS 7上的Safari不会为图标添加效果。老版本的Safari不会为使用-precomposed.png后缀命名的图标文件添加效果。有关详细信息,请参阅第一步:在iTunes Connect中识别您的应用程序。

  • 指定启动屏幕图像

在iOS上,与原生应用程序类似,您可以指定在Web应用程序启动时显示的启动屏幕图像。当您的Web应用程序处于脱机状态时,这非常有用。默认情况下,使用上次启动时的Web应用程序屏幕截图。要设置另一个启动图像,请在网页中添加一个链接元素,如下所示:


在上面的例子中,launch.png用你的启动屏幕文件名替换。有关当前的启动屏幕大小和建议,请参阅iOS人机界面指南的“图形”一章。

添加启动图标标题

在iOS上,您可以为启动图标指定一个Web应用程序标题。默认情况下,使用标签。要设置不同的标题,请在网页中添加元标记,如下所示:</p> <pre><code><meta name =“apple-mobile-web-app-title”content =“AppTitle”> </code></pre> <p>在上面的例子中,替换AppTitle你的标题。</p> <h2>隐藏Safari用户界面组件</h2> <p>在iOS上,作为优化您的Web应用程序的一部分,让它使用独立模式更像本地应用程序。当您使用此独立模式时,Safari不会用于显示Web内容 - 具体来说,屏幕顶部没有浏览器URL文本字段,或者屏幕底部没有按钮栏。只有一个状态栏出现在屏幕的顶部。阅读更改状态栏外观以了解如何最小化状态栏。</p> <p>将apple-mobile-web-app-capable元标记设置yes为打开独立模式。例如,以下HTML将使用独立模式显示Web内容。</p> <pre><code><meta name =“apple-mobile-web-app-capable”content =“yes”> </code></pre> <p>您可以使用window.navigator.standalone只读布尔JavaScript属性确定网页是否以独立模式显示。有关独立模式的更多信息,请参阅apple-mobile-web-app-capable。</p> <h2>更改状态栏的外观</h2> <p>如果您的Web应用程序以独立模式显示,如本机应用程序,则可以最小化iOS上屏幕顶部显示的状态栏。这样做使用状态栏式元标记。</p> <p>除非您首先指定了隐藏Safari用户界面组件中所述的独立模式,否则此元标记将不起作用。然后使用状态栏样式meta标签apple-mobile-web-app-status-bar-style来根据您的应用程序需要更改状态栏的外观。例如,如果要使用整个屏幕,请将状态栏样式设置为半透明黑色。</p> <p>例如,下面的HTML将状态栏的背景颜色设置为黑色:</p> <pre><code><meta name =“apple-mobile-web-app-status-bar-style”content =“black”> </code></pre> <p>有关状态栏外观的更多信息,请参阅iOS人机界面指南的“UI栏”一章。</p> <h2>链接到其他原生应用程序</h2> <p>您的Web应用程序可以通过创建具有特殊URL的链接来链接到其他内置的iOS应用程序。可用的功能包括拨打电话号码,发送短信或iMessage,并在其本机应用程序(如果已安装)中打开YouTube视频。例如,要链接到电话号码,请按以下格式构造一个锚点元素:</p> <pre><code><a href="tel:1-408-555-5555">给我打电话</a> </code></pre> <p>有关这些功能的完整视图,请参阅Apple URL Scheme Reference。</p> <p>这是我在项目index.html上添加的代码:</p> <pre><code><!-- Specifying a Webpage Icon for Web Clip for Safari --> <link rel="apple-touch-icon" href="assets/imgs/logo.png"> <!-- Specifying a Launch Screen Image for Safari --> <link rel="apple-touch-startup-image" href="assets/imgs/splash.png"> <!-- Hiding Safari User Interface Components --> <meta name="apple-mobile-web-app-capable" content="yes"> <!-- Changing the Status Bar Appearance --> <meta name="apple-mobile-web-app-status-bar-style" content="black"> </code></pre> <p>实际体验如下图所示:<br><span class="img-wrap"></span></p> <p>可以看到用户添加到主屏幕后,有了自定义的图标及启动图,打开webapp后也不会有safari的地址栏和工具栏,体验跟原生一样。<br>因为我使用iphone自带的屏幕录制功能,所以顶部状态栏背景被占用,实际体验启动图是全屏的。</p> </div> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1304437925517234176"></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">你可能感兴趣的:(Safari配置WebApp----添加启动图和桌面图标让你的WebApp在ios设备上体验如原生一样...)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1881730869715070976.htm" title="深入探究 Java 异常处理" target="_blank">深入探究 Java 异常处理</a> <span class="text-muted">潜意识Java</span> <a class="tag" taget="_blank" href="/search/Java%E7%9F%A5%E8%AF%86/1.htm">Java知识</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>目录一、异常是什么,为啥要处理它二、Java异常体系概述三、Java异常处理方式1.try-catch-finally块2.throws关键字3.throw关键字四、自定义异常五、异常处理的最佳实践六、总结在Java编程的旅程中,异常处理就像是一位默默守护的卫士,时刻保障着程序的稳健运行。当程序运行过程中出现错误或异常情况时,合理的异常处理机制能够避免程序崩溃,让程序以一种可控的方式继续执行或优雅</div> </li> <li><a href="/article/1881728603775889408.htm" title="azkaban的概况" target="_blank">azkaban的概况</a> <span class="text-muted">北京小峻</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/azkaban/1.htm">azkaban</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>Azkaban的性质azkaban是一个任务调度,管理系统,可以帮用户管理,调度各种运算任务的一个web服务器可以调度任何任务,只要你的任务能用脚本启动azkaban的类似的产品还有很多,例如hadoop生态中原生的:oozie,areflow局限性目前azkaban只支持mysql作为元数据管理系统,必须安装mysql服务器角色executorserver有好几个是真正执行的程序,调度用户的任务</div> </li> <li><a href="/article/1881728476587814912.htm" title="Maxwell软件使用问题——旧版本打开新版本(The partner project name of the link cannot be empty)" target="_blank">Maxwell软件使用问题——旧版本打开新版本(The partner project name of the link cannot be empty)</a> <span class="text-muted">加点油。。。。</span> <a class="tag" taget="_blank" href="/search/Maxwell%E5%BB%BA%E6%A8%A1/1.htm">Maxwell建模</a><a class="tag" taget="_blank" href="/search/maxwell/1.htm">maxwell</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E6%9C%BA%E5%BB%BA%E6%A8%A1/1.htm">电机建模</a><a class="tag" taget="_blank" href="/search/%E4%BB%BF%E7%9C%9F/1.htm">仿真</a><a class="tag" taget="_blank" href="/search/ansys/1.htm">ansys</a> <div>问题:使用AnsysElectronics2019R1打开2022R1运行maxwell模型是出现了下面问题解决方法:参考链接:(https://bbs.simol.cn/thread-200781-1-1.html)将setup中Advanced的对勾去掉。</div> </li> <li><a href="/article/1881728098370646016.htm" title="小结:直连路由配置检验" target="_blank">小结:直连路由配置检验</a> <span class="text-muted">flying robot</span> <a class="tag" taget="_blank" href="/search/HCIE/1.htm">HCIE</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a> <div>直连路由是指通过直接连接到路由器的接口形成的路由。直连路由不需要手动配置,路由器会根据接口的IP地址自动生成直连路由。直连路由的特点直连路由由路由器根据接口配置自动添加到路由表中。直连路由的优先级通常比静态路由和动态路由更高(优先级为0)。直连路由通过接口的物理状态(up/down)来动态更新。直连路由的配置步骤1.配置接口的IP地址直连路由的基础是接口的IP地址配置。以下是配置两个接口的示例:内</div> </li> <li><a href="/article/1881727216333680640.htm" title="python etree模块所有函数详解_09.XML处理之etree模块" target="_blank">python etree模块所有函数详解_09.XML处理之etree模块</a> <span class="text-muted">weixin_39878401</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/etree%E6%A8%A1%E5%9D%97%E6%89%80%E6%9C%89%E5%87%BD%E6%95%B0%E8%AF%A6%E8%A7%A3/1.htm">etree模块所有函数详解</a> <div>本主题主要说明python的xml处理标准模块xml.etree的使用。xml.etree模块包含4个子模块,其中cElementTree是ElementTree的别名,已经不推荐使用。本主题主要包含内容:1.ElementInclude模块使用2.ElementPath模块使用3.ElementTree模块使用一、etree模块帮助importxml.etreehelp(xml.etree)He</div> </li> <li><a href="/article/1881727090026409984.htm" title="自动化办公python脚本_Python自动化办公" target="_blank">自动化办公python脚本_Python自动化办公</a> <span class="text-muted">weixin_39834281</span> <a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96%E5%8A%9E%E5%85%ACpython%E8%84%9A%E6%9C%AC/1.htm">自动化办公python脚本</a> <div>在公司购买的OA系统上,很多功能都是软件商开发好的,如果有什么自定义的需求,也很难实现。现实情况下需要将一个工单的各类信息汇总整理为一份Excel,看似简单的需求,却需要在OA系统上反复点击多次,人工汇总。本章我们看看如何使用Python爬虫帮同事解决这个问题的。点击工单号之后才可以看到更多信息一、技术路线requests_html二、环境准备fromrequests_htmlimportHTML</div> </li> <li><a href="/article/1881726837747412992.htm" title="iOS 网络请求: Alamofire 结合 ObjectMapper 实现自动解析" target="_blank">iOS 网络请求: Alamofire 结合 ObjectMapper 实现自动解析</a> <span class="text-muted">胖虎1</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/1.htm">开发经验分享</a><a class="tag" taget="_blank" href="/search/ios/1.htm">ios</a><a class="tag" taget="_blank" href="/search/Alamofire/1.htm">Alamofire</a><a class="tag" taget="_blank" href="/search/ObjectMapper/1.htm">ObjectMapper</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E8%AF%B7%E6%B1%82%E8%87%AA%E5%8A%A8%E8%A7%A3%E6%9E%90/1.htm">网络请求自动解析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E8%87%AA%E5%8A%A8%E8%A7%A3%E6%9E%90%E6%A8%A1%E5%9E%8B/1.htm">数据自动解析模型</a> <div>引言在iOS开发中,网络请求是常见且致其重要的功能之一。从获取资料到上传数据,出色的网络请求框架能夠大大提升开发效率。Alamofire是一个极具人气的Swift网络请求框架,提供了便据的API以完成网络请求和响应处理。它支持多种请求类型,如GET和POST,并且给予您便据的带容处理过滤器和返回数据解析的功能。ObjectMapper是一个强大的Swift数据映射工具,使用其提供的Mappable</div> </li> <li><a href="/article/1881726711515639808.htm" title="Mybatis总结(一)(简单介绍)" target="_blank">Mybatis总结(一)(简单介绍)</a> <span class="text-muted">weixin_34326429</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>1.1MyBatis介绍MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为MyBatis,实质上Mybatis对ibatis进行一些改进。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱动、创</div> </li> <li><a href="/article/1881726585212563456.htm" title="android presentation" target="_blank">android presentation</a> <span class="text-muted">weixin_33725126</span> <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/ui/1.htm">ui</a> <div>对于双屏异显(lcd和hdmi的双屏异显),android框架已经支持,但是底层接口功能还是要自己去实现,且需要底层驱动支持。使用presentation去画第二个display就好了。1MediaRoutermediaRouter=(MediaRouter)context.getSystemService(Context.MEDIA_ROUTER_SERVICE);2MediaRouter.Ro</div> </li> <li><a href="/article/1881725955370708992.htm" title="服务化架构 IM 系统之红包功能设计与实现" target="_blank">服务化架构 IM 系统之红包功能设计与实现</a> <span class="text-muted">棕生</span> <a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%9E%B6%E6%9E%84/1.htm">服务化架构</a><a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1%E5%8C%96%E6%9E%B6%E6%9E%84/1.htm">服务化架构</a><a class="tag" taget="_blank" href="/search/%E7%BA%A2%E5%8C%85%E9%80%BB%E8%BE%91/1.htm">红包逻辑</a><a class="tag" taget="_blank" href="/search/%E5%8F%91%E7%BA%A2%E5%8C%85/1.htm">发红包</a><a class="tag" taget="_blank" href="/search/%E6%8A%A2%E7%BA%A2%E5%8C%85/1.htm">抢红包</a><a class="tag" taget="_blank" href="/search/%E6%8B%86%E7%BA%A2%E5%8C%85/1.htm">拆红包</a> <div>在IM系统中,“红包”是一种很常见的应用。在前面的文章(见《基于需求分析模型来结构化剖析IM系统》)中,我们曾分析过,“红包”属于扩展功能需求,“消息”属于基础功能需求,红包功能的实现需要基于消息功能的实现。在文章(见《分层架构IM系统之消息收发功能设计与实现》)中,我们深入分析过消息的收发流程;在IM的服务化架构中,消息收发逻辑与在分层架构中类似,见下图,我们快速回顾一下。图中箭头表示数据流向。</div> </li> <li><a href="/article/1881725577275174912.htm" title="分层架构 IM 系统之消息收发功能设计与实现" target="_blank">分层架构 IM 系统之消息收发功能设计与实现</a> <span class="text-muted">棕生</span> <a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/1.htm">分层架构</a><a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/1.htm">分层架构</a><a class="tag" taget="_blank" href="/search/%E6%B6%88%E6%81%AF%E6%94%B6%E5%8F%91/1.htm">消息收发</a><a class="tag" taget="_blank" href="/search/%E7%94%9F%E4%BA%A7%E6%B6%88%E6%81%AF%E9%98%B6%E6%AE%B5/1.htm">生产消息阶段</a><a class="tag" taget="_blank" href="/search/%E6%8E%A8%E9%80%81%E6%B6%88%E6%81%AF%E9%98%B6%E6%AE%B5/1.htm">推送消息阶段</a><a class="tag" taget="_blank" href="/search/%E7%A1%AE%E8%AE%A4%E6%B6%88%E6%81%AF%E9%98%B6%E6%AE%B5/1.htm">确认消息阶段</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E8%AF%9D%E6%A8%A1%E5%9E%8B/1.htm">电话模型</a> <div>“消息收发”是IM系统最最核心的业务逻辑模块,本篇文章是整个“分层架构IM系统”的核心!IM,即“即时通讯”,要求消息具备“及时性”和“可靠性”:及时性,要求消息的收发需要很低的延时,在线双方通过消息交流时,没有明显的滞后感。可靠性,要求消息不能丢失;对于消息发送方来说,只要消息发送成功了,消息就会一直存在服务端,不会丢失(除非因产品策略,删除久远的历史消息);对于服务端来说,只要接收方在线,一定</div> </li> <li><a href="/article/1881725574783758336.htm" title="分层架构 IM 系统之架构演进" target="_blank">分层架构 IM 系统之架构演进</a> <span class="text-muted">棕生</span> <a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/1.htm">分层架构</a><a class="tag" taget="_blank" href="/search/IM%E7%B3%BB%E7%BB%9F/1.htm">IM系统</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B1%82%E6%9E%B6%E6%9E%84/1.htm">分层架构</a><a class="tag" taget="_blank" href="/search/%E4%B8%9A%E5%8A%A1%E5%88%86%E7%A6%BB/1.htm">业务分离</a><a class="tag" taget="_blank" href="/search/MQ%E8%A7%A3%E8%80%A6/1.htm">MQ解耦</a> <div>在电商业务日活几百万的情况下,IM系统采用分层架构方式,如下图。分层架构的IM系统,整体上包含了【终端层】、【入口层】、【业务逻辑层】、【路由层】、【数据访问层】和【存储层】,我们在上篇文章(分层架构IM系统之架构解读)中进行了介绍。今天讨论局部的架构调整和演进!随着用户日活量的增多,业务规模也在逐步增大(即后端接口数量越来越大),而且业务逻辑也越来越复杂;为了引流,平台几乎每周都会做运营活动,此</div> </li> <li><a href="/article/1881725571386372096.htm" title="基于hadoop的协同过滤算法电影推荐系统的设计与实现" target="_blank">基于hadoop的协同过滤算法电影推荐系统的设计与实现</a> <span class="text-muted">AI天才研究院</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AEAI%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">大数据AI人工智能</a><a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E4%BC%81%E4%B8%9A%E7%BA%A7%E5%BA%94%E7%94%A8%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98/1.htm">AI大模型企业级应用开发实战</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E7%A7%91%E5%AD%A6/1.htm">计算科学</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E8%AE%A1%E7%AE%97/1.htm">神经计算</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/1.htm">神经网络</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E5%9E%8B%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">大型语言模型</a><a class="tag" taget="_blank" href="/search/AI/1.htm">AI</a><a class="tag" taget="_blank" href="/search/AGI/1.htm">AGI</a><a class="tag" taget="_blank" href="/search/LLM/1.htm">LLM</a><a class="tag" taget="_blank" href="/search/Java/1.htm">Java</a><a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/Agent/1.htm">Agent</a><a class="tag" taget="_blank" href="/search/RPA/1.htm">RPA</a> <div>基于hadoop的协同过滤算法电影推荐系统的设计与实现文章目录基于hadoop的协同过滤算法电影推荐系统的设计与实现1.背景介绍1.1电影推荐系统的重要性1.2传统推荐系统的缺陷1.3Hadoop在大数据处理中的作用2.核心概念与联系2.1协同过滤算法2.2基于用户的协同过滤2.3基于项目的协同过滤2.4Hadoop在协同过滤算法中的应用3.核心算法原理具体操作步骤3.1基于用户的协同过滤算法流程</div> </li> <li><a href="/article/1881725319296118784.htm" title="思考(八十五):IM 服务设计思路" target="_blank">思考(八十五):IM 服务设计思路</a> <span class="text-muted">fananchong2</span> <a class="tag" taget="_blank" href="/search/Go%E6%B8%B8%E6%88%8F%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%BC%80%E5%8F%91%E7%9A%84%E4%B8%80%E4%BA%9B%E6%80%9D%E8%80%83/1.htm">Go游戏服务器开发的一些思考</a><a class="tag" taget="_blank" href="/search/IM/1.htm">IM</a><a class="tag" taget="_blank" href="/search/%E6%9C%8D%E5%8A%A1/1.htm">服务</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1/1.htm">架构设计</a><a class="tag" taget="_blank" href="/search/%E8%81%8A%E5%A4%A9%E6%9C%8D/1.htm">聊天服</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>IM服务器IM服务器,在游戏开发中,俗称聊天服一般有内嵌在游戏服架构内,与外置于游戏服架构外外置于游戏服架构外的聊天服,通常就是完整的IM服务器设计目标消息可靠,不丢失无状态,易扩展高性能服务类型介绍设计以下服务:服务类型说明Gateway网关,保持玩家连接APIAPI服,HTTPWeb服务,处理除聊天流程外的逻辑,如注册账号、鉴权、好友管理、群组管理等等Single单聊消息处理服务Group群组</div> </li> <li><a href="/article/1881724815455350784.htm" title="射频框架" target="_blank">射频框架</a> <span class="text-muted">YOYO--小天</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A1%AC%E4%BB%B6/1.htm">计算机硬件</a> <div>版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:关于射频————————————————版权声明:本文为CSDN博主「gecko001」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/gecko001/article/details/86569912RF前端</div> </li> <li><a href="/article/1881723933980422144.htm" title="mybatis架构原理" target="_blank">mybatis架构原理</a> <span class="text-muted">章绍龙</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a> <div>1、mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。SqlMapConfig.xml是mybatis的核心文件。mybatis将dao层与sql语句分离开来,虽然写的时候分离开来了,但是执</div> </li> <li><a href="/article/1881722800855642112.htm" title="STM32 FreeROTS 任务创建和删除实验(静态方法)" target="_blank">STM32 FreeROTS 任务创建和删除实验(静态方法)</a> <span class="text-muted">雁过留声花欲落</span> <a class="tag" taget="_blank" href="/search/STM32/1.htm">STM32</a><a class="tag" taget="_blank" href="/search/FreeRTOS/1.htm">FreeRTOS</a><a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F%E7%A1%AC%E4%BB%B6/1.htm">嵌入式硬件</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E7%89%87%E6%9C%BA/1.htm">单片机</a> <div>实验目标学会xTaskCreateStatic()和vTaskDelete()的使用:start_task:用来创建其他的三个任务。task1:实现LED1每500ms闪烁一次。task2:实现LED2每500ms闪烁一次。task3:判断按键KEY1是否按下,按下则删掉task1。看代码直接看代码修改,其余和动态创建和删除一样。STM32FreeRTOS任务创建和删除实验(动态方法)-CSDN博</div> </li> <li><a href="/article/1881722296947765248.htm" title="东南大学研究生-数值分析上机题(2023)Python 6 常微分方程数值解法" target="_blank">东南大学研究生-数值分析上机题(2023)Python 6 常微分方程数值解法</a> <span class="text-muted">天空的蓝耀</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>常微分方程初值问题数值解6.1题目编制RK4方法的通用程序;编制AB4方法的通用程序(由RK4提供初值);编制AB4-AM4预测校正方法通用程序(由RK4提供初值);编制带改进的AB4-AM4预测校正方法通用程序(由RK4提供初值);对于初值问题{y′=−x2y2,0≤x≤1.5,y(0)=3\begin{cases}y'=-x^{2}y^{2},&0\leqx\leq1.5,\\y(0)=3&\</div> </li> <li><a href="/article/1881722043498557440.htm" title="C++ Primer:3.2 标准库类型string" target="_blank">C++ Primer:3.2 标准库类型string</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>其他章节:C++Primer学习心得标准库类型string表示可变长的字符序列,使用string类型必须首先头文件,string定义在命名空间std中#includeusingstd::string定义和初始化string对象初始化类的对象是由类本身决定的,一个类可以定义很多种初始化对象的方式。strings1//默认初始化,s1是一个空串strings2(sl)//s2是s1的副本strings</div> </li> <li><a href="/article/1881722044199006208.htm" title="C++ Primer:3.3 标准库类型vector" target="_blank">C++ Primer:3.3 标准库类型vector</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>其他章节:C++Primer学习心得vector类型表示对象的集合,所有对象的类型都相同。集合中的每个对象都有一个与之对应的索引,用于访问对象。vector容纳着其他对象,也被称作容器。使用vector必须包含适当的头文件。#includeusingstd::vectorvector是一个类模板,模板不是类或函数。编译器根据模板创建类或函数的过程成为实例化,当使用模板时,需要指出把类和函数实例化成</div> </li> <li><a href="/article/1881722040856145920.htm" title="计算机网络03(传输层工作原理,TCP/UDP协议)" target="_blank">计算机网络03(传输层工作原理,TCP/UDP协议)</a> <span class="text-muted">~须尽欢</span> <a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/1.htm">计算机网络</a><a class="tag" taget="_blank" href="/search/tcp%2Fip/1.htm">tcp/ip</a><a class="tag" taget="_blank" href="/search/udp/1.htm">udp</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/1.htm">网络协议</a><a class="tag" taget="_blank" href="/search/tcp/1.htm">tcp</a> <div>目录一:介绍传输层二:TCP协议1.TCP包头结构信息2.三次握手3.四次挥手4.流量控制5.差错控制三:UDP协议1、UDP介绍2、UDP常用领域四:TCP和UDP的对比1、应用方面及服务端口2、整体对比一:介绍传输层1.作用:传输层是整个网络体系结构中的关键层次之一,主要负责向两个主机中进程之间的通信提供服务。由于一个主机同时运行多个进程,因此运输层具有复用和分用功能。传输层在终端用户之间提供</div> </li> <li><a href="/article/1881721537040543744.htm" title="day 21" target="_blank">day 21</a> <span class="text-muted">qq_50996930</span> <a class="tag" taget="_blank" href="/search/Go%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80/1.htm">Go语言基础</a><a class="tag" taget="_blank" href="/search/go/1.htm">go</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>进程、线程、协程的区别进程:操作系统分配资源的最小单位,其中可以包含一个或者多个线程,进程之间是独立的,可以通过进程间通信机制(管道,消息队列,共享内存,信号量,信号,socket套接字)通信,进程的切换涉及到许多资源耗费时间多。线程:轻量级的进程,一个进程之间可以有多个线程,系统调度的最小单位,多个线程之间共享一部分进程的资源,有线程独立的线程栈,程序计数器,寄存器等。可以通过共享内存通信,相对</div> </li> <li><a href="/article/1881721410632609792.htm" title="动手写分布式缓存 11" target="_blank">动手写分布式缓存 11</a> <span class="text-muted">qq_50996930</span> <a class="tag" taget="_blank" href="/search/Go%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E4%B8%93%E6%A0%8F/1.htm">Go语言学习专栏</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/%E7%BC%93%E5%AD%98/1.htm">缓存</a> <div>main函数实现定义一个map模拟数据库。varmysql=map[string]string{"Tom":"630","Jack":"589","Sam":"567",}为多个端口处创建rpc服务服务名就是ip+端口。将各个服务器的ip+端口加到每个服务器的哈希环里。为每个服务器创建缓存池组。缓存池组和rpc服务绑定。持续监听端口addrs:=[]string{"localhost:9999",</div> </li> <li><a href="/article/1881721284329533440.htm" title="Go的基础操作" target="_blank">Go的基础操作</a> <span class="text-muted">qq_50996930</span> <a class="tag" taget="_blank" href="/search/Go%E8%AF%AD%E8%A8%80%E5%AD%A6%E4%B9%A0%E4%B8%93%E6%A0%8F/1.htm">Go语言学习专栏</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>helloworld通过一段简单go代码打印helloworld。packagemainimport("fmt")funcmain(){fmt.Println("Hello,Golang!")}我们来逐行解析一下:packagemain:声明了当前这个go文件所在的包,Go用包来组织代码,一般一个文件夹是一个包,包内可以暴露类型供其他包使用。import(“fmt”):fmt就是go语言的一个标准</div> </li> <li><a href="/article/1881721283461312512.htm" title="day 21" target="_blank">day 21</a> <span class="text-muted">qq_50996930</span> <a class="tag" taget="_blank" href="/search/C%2B%2B%E5%AD%A6%E4%B9%A0%E4%B8%93%E6%A0%8F/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/stl/1.htm">stl</a> <div>C++11新特性智能指针右值引用和move语句auto关键字(根据初始化的值自动推导类型)lambda表达式for的范围遍历类和结构体中初始化列表nullptr代替null统一的初始化方式…智能指针:智能指针利用RAII思想将指针进行封装,使其在构造时分配内存,析构时释放内存,将动态分配的内存交给类对象管理,防止堆内存泄漏。常见的三种智能指针分别是unique_ptr,shared_ptr,wea</div> </li> <li><a href="/article/1881720905395138560.htm" title="【SpringBoot实现xss防御】" target="_blank">【SpringBoot实现xss防御】</a> <span class="text-muted">龙少9543</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/xss/1.htm">xss</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>SpringBoot实现xss防御在SpringBoot中实现XSS防御,可以通过多种方式来确保输入的安全性和防止恶意脚本的注入。下面提供了一些具体的实现代码示例,包括输入清理、输出编码以及设置安全响应头。1.输入清理创建一个简单的工具类来进行HTML转义:importorg.jsoup.Jsoup;importorg.jsoup.nodes.Document.OutputSettings;imp</div> </li> <li><a href="/article/1881720527295410176.htm" title="异常检测的评价指标:ROCAUC等【tips】" target="_blank">异常检测的评价指标:ROCAUC等【tips】</a> <span class="text-muted">太简单了</span> <a class="tag" taget="_blank" href="/search/tips/1.htm">tips</a><a class="tag" taget="_blank" href="/search/%E8%AE%A1%E7%AE%97%E6%9C%BA%E8%A7%86%E8%A7%89/1.htm">计算机视觉</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</a> <div>准确率Precision&召回率Recallfromsklearn.metricsimportprecision_recall_curveprecision,recall,thresholds=precision_recall_curve(gt_mask.flatten(),scores.flatten())混淆矩阵:实际预测正负正TP(真正类)FN(假负类)负FP(假正类)TN(真负类)prec</div> </li> <li><a href="/article/1881720149438951424.htm" title="青少年编程与数学 02-007 PostgreSQL数据库应用 12课题、存储过程编写" target="_blank">青少年编程与数学 02-007 PostgreSQL数据库应用 12课题、存储过程编写</a> <span class="text-muted">明月看潮生</span> <a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B8%8E%E6%95%B0%E5%AD%A6/1.htm">编程与数学</a><a class="tag" taget="_blank" href="/search/%E7%AC%AC02%E9%98%B6%E6%AE%B5/1.htm">第02阶段</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/%E9%9D%92%E5%B0%91%E5%B9%B4%E7%BC%96%E7%A8%8B/1.htm">青少年编程</a><a class="tag" taget="_blank" href="/search/postgresql/1.htm">postgresql</a><a class="tag" taget="_blank" href="/search/%E7%BC%96%E7%A8%8B%E4%B8%8E%E6%95%B0%E5%AD%A6/1.htm">编程与数学</a> <div>青少年编程与数学02-007PostgreSQL数据库应用12课题、存储过程编写一、存储过程二、分类三、创建四、调用五、修改六、删除七、应用示例八、内置存储过程课题摘要:本课题详细介绍了PostgreSQL中存储过程的编写和操作。存储过程是一系列SQL语句的集合,可作为单元保存在数据库中,用于执行数据查询、更新、插入和删除等操作。它们具有封装性、提高性能、增强安全性、事务管理、参数化和返回结果等特</div> </li> <li><a href="/article/1881719897109622784.htm" title="Go语言学习笔记—golang流程控制" target="_blank">Go语言学习笔记—golang流程控制</a> <span class="text-muted">PPPsych</span> <a class="tag" taget="_blank" href="/search/Go%E8%AF%AD%E8%A8%80%E5%9F%BA%E7%A1%80%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">Go语言基础学习笔记</a><a class="tag" taget="_blank" href="/search/golang/1.htm">golang</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>视频来源:B站《golang入门到项目实战[2022最新Go语言教程,没有废话,纯干货!]》文章为自己整理的学习笔记,侵权即删,谢谢支持!文章目录一Go语言中的流程控制简介二Go语言中的if语句2.1语法2.2实例演示2.3注意事项三Go语言中的ifelse语句3.1语法3.2实例演示3.3注意事项(同if语句)四Go语言中的ifelseif语句4.1语法4.2实例演示五Go语言中的嵌套if语句5</div> </li> <li><a href="/article/1881718260576088064.htm" title="Docker的原理:如何理解容器技术的力量 思维导图-java架构" target="_blank">Docker的原理:如何理解容器技术的力量 思维导图-java架构</a> <span class="text-muted">用心去追梦</span> <a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/storm/1.htm">storm</a> <div>要理解Docker的原理以及容器技术的力量,可以通过一个思维导图来帮助整理和展示信息。以下是一个基于文本的思维导图结构,用于说明Docker和容器技术的关键概念,特别关注于Java架构师可能会感兴趣的部分:Docker与容器技术│├───基本概念│├───容器(Container)││└───是一个轻量级、可移植、自包含的软件包│├───镜像(Image)││└───包含应用程序及其所有依赖项的只</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>