E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
BananaScript
【Angular实战/网易云】登录组件
Angular
#
Angular实战
一. 表单的基础知识
和
之间包裹起来的内容就是表单。其中,内部的
啊,
啊,
这些,都叫做<strong>表单控件</strong>。</p> <p>其中<button>的默认type为submit,这个意味着你点击这个button就会自动帮你提交,你如果强行绑定(click)事件就会引发错误。</p> <p>相似的type还有reset, 这个也不能绑定事件。</p> <p> </p> <h1>二. ng-zorro表单</h1> <p>这里我使用的框架是ng-zorro,模板代码如下:</p> <pre><code class="language-TypeScript"><div class="login-phone modal-content"> <div class="modal-wrap"> <form nz-form class="login-form" [formGroup]="formModal" (ngSubmit)="onSubmit()"> <nz-form-item> <nz-form-control nzHasFeedback nzErrorTip="请输入正确的手机号"> <nz-input-group nzPrefixIcon="mobile"> <input type="tel" nz-input placeholder="请输入手机号" formControlName="phone"> </nz-input-group> </nz-form-control> </nz-form-item> <nz-form-item> <nz-form-control nzHasFeedback nzErrorTip="请输入正确的密码"> <nz-input-group nzPrefixIcon="lock"> <input type="password" nz-input placeholder="请输入密码" formControlName="password"> </nz-input-group> </nz-form-control> </nz-form-item> <nz-form-item> <nz-form-control> <div class="tools"> <label nz-checkbox class="remember" formControlName="remember"> <span>记住密码</span> </label> </div> <button nz-button class="login-form-button" [disabled]="!formModal.valid" nzType="primary" nzBlock>登陆</button> </nz-form-control> </nz-form-item> </form> </div> </div></code></pre> <p>注意到三点:</p> <ul> <li>我们通过<strong>绑定[formGroup]属性确定了表单模型变量。</strong></li> <li>通过<strong>(ngOnSubmit)绑定了提交的事件</strong>。</li> <li>每一个控件通过formControlName<strong>确定了表单控件的引用</strong>。</li> </ul> <p> </p> <h1>三. 表单逻辑</h1> <p>其实在登录组件背后的逻辑就是表单的各种操作,比如在初始化的时候设置初值:</p> <pre><code class="language-TypeScript"> constructor(private fb: FormBuilder) { this.setFormModal({phone: '', password: '', remember: false}); } setFormModal({phone, password, remember}) { this.formModal = this.fb.group({ phone: [phone, [Validators.required, Validators.pattern(/^1\d{10}$/)]], password: [password, [Validators.required, Validators.minLength(6)]], remember: [remember] }); }</code></pre> <p>然后当你点击按钮,出发onSubmit事件的时候把LoginParams发送出去:</p> <pre><code class="language-TypeScript"> onSubmit(): void { if (this.formModal.valid) { this.onLogin.emit(this.formModal.value); } }</code></pre> <p> </p> <h1>四. 调用接口登录</h1> <p>调用接口,老生长谈了。创建一个新的services.ts文件:</p> <pre><code class="language-TypeScript"> login(loginParam: LoginParams): Observable<User> { const usernamePasswordPair = {phone: loginParam.phone, password: loginParam.password}; const param = new HttpParams({fromString: queryString.stringify(usernamePasswordPair)}); return this.http.get(this.urlPrefix + 'login/cellphone', {params: param}).pipe( map(user => user as User) ); }</code></pre> <p>之前我们提到把登录的参数交给父组件处理了,接下来我们来看看父组件中是怎么处理的:</p> <p>父组件中主要做这么几件事情:</p> <ul> <li>接收接口返回的数据,成功与否可以用messageService来替换console.log和console.error。注意<strong>成功了还得把模态框关了</strong>。</li> <li><strong>把userId保存在localStorage中</strong>,用来记住用户的登录状态;同时,<strong>利用状态管理插件改变userId这个状态</strong>,这样就能通知所有用来显示用户信息的组件渲染新的DOM。</li> <li><strong>还可以把用户名和密码加密后保存在localStorage中</strong>,不过不推荐(原因见下)</li> </ul> <pre><code class="language-TypeScript"> onChangeModalType(type) { this.memberBatchServices.controlModal(true, type); } onLogin(loginParam: LoginParams) { this.memberService.login(loginParam).subscribe(res => { this.user = res; console.log(this.user); this.memberBatchServices.controlModal(false); this.alertMessage('success', '登陆成功!'); this.storageService.setStorage({ key: 'wyUserId', value: this.user.profile.userId.toString() }); this.store$.dispatch(SetUserId({userId: this.user.profile.userId.toString()})); if (loginParam.remember) { this.storageService.setStorage({ key: 'wyRememberLogin', value: JSON.stringify(codeJson(loginParam)) }); } else { this.storageService.removeStorage('wyRememberLogin'); } }, this.handleErrorMessage); } private alertMessage(type: string, msg: string) { this.messageService.create(type, msg); }</code></pre> <p> </p> <h1>五. 记住用户登录状态</h1> <p>我们在登陆以后userId就直接保存在我们的localStorage中了。如果不logout的话不会清除这个。</p> <p>之前也提到过,我们用这个userId是用来记住用户登录状态的。原理如下:</p> <p>在页面初始化之前,<strong>通过userId来调用一个新的接口</strong>,<strong>这个接口返回和login一样的用户数据</strong>,这样我们就能把登陆后的数据渲染到页面上了。</p> <pre><code class="language-TypeScript"> constructor( // 。。。 private storageService: StorageService, ) { // 从localStorage中获取信息 const userId = this.storageService.getStorage('wyUserId'); if (userId) { this.store$.dispatch(SetUserId({userId})); this.memberService.getUserDetail(userId).subscribe(user => this.user = user); } }</code></pre> <p>这里也展示一下StorageService把,他主要是用来封装SessionStorage和LocalStorage两个操作的(原理是用[]+字符串访问元素):</p> <pre><code class="language-TypeScript">@Injectable({ providedIn: ServicesModule }) export class StorageService { constructor(@Inject(WINDOW) private win: Window) { } getStorage(key: string, type = 'local'): string { return this.win[type + 'Storage'].getItem(key); } setStorage(params: AnyJson | AnyJson[], type = 'local') { const kv = Array.isArray(params) ? params : [params]; for (const { key, value } of kv) { this.win[type + 'Storage'].setItem(key, value.toString()); } } removeStorage(params: string | string[], type = 'local') { const kv = Array.isArray(params) ? params : [params]; for (const key of kv) { this.win[type + 'Storage'].removeItem(key); } } }</code></pre> <p> </p> <h1>六. 保存用户登录用户名和密码</h1> <p>我们之前的登录选项中有记住用户名和密码这个选项,当我们勾选了这个选项之后,下次点击登录按钮就会从localStorage中取出保存的用户名和密码。</p> <p>不过,这种做法相当不安全,这里我们也是通过了base64的加密算法来进行加密,不过依然不够安全:</p> <pre><code class="language-TypeScript"> // 这段代码是从上面摘抄来的。。。 if (loginParam.remember) { this.storageService.setStorage({ key: 'wyRememberLogin', value: JSON.stringify(codeJson(loginParam)) }); } else { this.storageService.removeStorage('wyRememberLogin'); }</code></pre> <p>一个比较推荐的做法是,<strong>不用记住密码这种选项,而让浏览器自动记住你的登录信息</strong>。</p> <p> </p> <h1>七. 登出做什么</h1> <ul> <li>相关变量,全部设置为null。</li> <li>利用messageService提示用户已经退出成功。</li> <li>删除localStorage中的相关信息。</li> </ul> <pre><code class="language-TypeScript"> onLogout() { this.memberService.logout().subscribe(() => { this.alertMessage('success', '退出成功!'); this.user = null; this.store$.dispatch(SetUserId({userId: null})); this.storageService.removeStorage('wyUserId'); }, this.handleErrorMessage); }</code></pre> <p> </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1303986697033256960"></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">你可能感兴趣的:(Angular,#,Angular实战)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1894269375746207744.htm" title="【Mastering Vim 2_07】第六章:正则表达式和 Vim 宏在代码重构中的实战应用" target="_blank">【Mastering Vim 2_07】第六章:正则表达式和 Vim 宏在代码重构中的实战应用</a> <span class="text-muted">安冬的码畜日常</span> <a class="tag" taget="_blank" href="/search/Mastering/1.htm">Mastering</a><a class="tag" taget="_blank" href="/search/Vim/1.htm">Vim</a><a class="tag" taget="_blank" href="/search/%282nd/1.htm">(2nd</a><a class="tag" taget="_blank" href="/search/Ed.%29/1.htm">Ed.)</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a><a class="tag" taget="_blank" href="/search/%E5%AE%8F/1.htm">宏</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a><a class="tag" taget="_blank" href="/search/macro/1.htm">macro</a><a class="tag" taget="_blank" href="/search/macros/1.htm">macros</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E9%87%8D%E6%9E%84/1.htm">代码重构</a> <div>【最新版《MasteringVim》封面,涵盖Vim9.0版特性】文章目录第六章正则表达式和Vim宏在代码重构中的应用1substitute替换命令2关于substitute的精确匹配3参数列表arglist在跨文件操作中的应用4Vim正则表达式基础5关于magic模式5.1magic模式5.2nomagic模式5.3verymagic模式5.4verynomagic6批量重命名变量名、方法名或类</div> </li> <li><a href="/article/1894260675639832576.htm" title="第五章:工程化实践 - 第一节 - Tailwind CSS 与前端框架的集成" target="_blank">第五章:工程化实践 - 第一节 - Tailwind CSS 与前端框架的集成</a> <span class="text-muted">qianmoQ</span> <a class="tag" taget="_blank" href="/search/Tailwind/1.htm">Tailwind</a><a class="tag" taget="_blank" href="/search/CSS%EF%BC%9A%E7%8E%B0%E4%BB%A3%E5%8C%96%E5%BC%80%E5%8F%91%E5%AE%9E%E6%88%98%E6%8C%87%E5%8D%97/1.htm">CSS:现代化开发实战指南</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E6%A1%86%E6%9E%B6/1.htm">前端框架</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>TailwindCSS可以与各种现代前端框架完美配合。本节将详细介绍如何将TailwindCSS集成到React、Vue和Angular等主流框架中,并介绍相关的最佳实践。React集成基础配置#创建React项目npxcreate-react-appmy-app--templatetypescript#安装TailwindCSSnpminstall-Dtailwindcsspostcssauto</div> </li> <li><a href="/article/1894246806636785664.htm" title="#渗透测试#批量漏洞挖掘#锐捷校园网自助服务系统 任意文件读取(CVE-2023-17233 )" target="_blank">#渗透测试#批量漏洞挖掘#锐捷校园网自助服务系统 任意文件读取(CVE-2023-17233 )</a> <span class="text-muted">独行soc</span> <a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E7%BB%9C/1.htm">网络</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8/1.htm">安全</a><a class="tag" taget="_blank" href="/search/%E6%BC%8F%E6%B4%9E%E6%8C%96%E6%8E%98/1.htm">漏洞挖掘</a><a class="tag" taget="_blank" href="/search/web%E5%AE%89%E5%85%A8/1.htm">web安全</a><a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95/1.htm">面试</a><a class="tag" taget="_blank" href="/search/%E6%8A%A4%E7%BD%91/1.htm">护网</a> <div>免责声明本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。目录一、漏洞核心原理与技术背景1.漏洞定义与触发条件2.常见攻击向量二、漏洞复现与渗透实战1.环境搭建与工具链2.漏洞验证步骤3.高级绕过技巧三、修复方案与安全加固1.代码层修复2.系统层加固</div> </li> <li><a href="/article/1894241429555834880.htm" title="旅行团供应链优化实战:管理软件助力成本控制与客户满意" target="_blank">旅行团供应链优化实战:管理软件助力成本控制与客户满意</a> <span class="text-muted"></span> <a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6/1.htm">项目管理软件</a> <div>优化旅行团供应链并利用管理软件提升效率是一个系统性工程,涉及多个环节和工具的应用。以下是一些具体的策略和方法:一、明确旅行团供应链管理的关键要素●交通:旅行社需要根据旅行团的规模、行程安排和目的地的具体情况,合理安排交通工具,如航班、地面交通等,并确保无缝衔接。●住宿:与各地酒店建立稳定的合作关系,确保旅行团能够在合适的地点和时间安排住宿,同时提供不同类型的房间以满足团员需求。●餐饮:与当地餐厅、</div> </li> <li><a href="/article/1894236343094013952.htm" title="DeepSeek革命性整合:零代码实现办公自动化全流程(Excel/PPT/Word+AI开发实战)——小白也能玩转的AI生产力核弹" target="_blank">DeepSeek革命性整合:零代码实现办公自动化全流程(Excel/PPT/Word+AI开发实战)——小白也能玩转的AI生产力核弹</a> <span class="text-muted">Leaton Lee</span> <a class="tag" taget="_blank" href="/search/excel/1.htm">excel</a><a class="tag" taget="_blank" href="/search/powerpoint/1.htm">powerpoint</a><a class="tag" taget="_blank" href="/search/word/1.htm">word</a><a class="tag" taget="_blank" href="/search/deepseek/1.htm">deepseek</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>关键词:DeepSeek办公自动化、AI生成PPT、Excel智能分析、Word合同助手、Python实战前言:当DeepSeek遇见经典办公三件套,效率爆炸的化学反应该怎么做?你是否还在为这些场景抓狂?凌晨2点对着空白PPT抓耳挠腮在Excel海量数据中迷失方向反复修改合同条款到怀疑人生今天我要揭秘的DeepSeek+经典办公工具组合技,将彻底颠覆你的工作方式!通过本文,你将掌握:✅5分钟生成专</div> </li> <li><a href="/article/1894234614495506432.htm" title="实战分享:如何基于源码开发一款优质的陪玩系统H5小程序APP公众号" target="_blank">实战分享:如何基于源码开发一款优质的陪玩系统H5小程序APP公众号</a> <span class="text-muted"></span> <div>基于源码开发一款优质的陪玩系统H5小程序、APP、公众号,需要结合目标用户群体的需求、市场趋势以及技术可行性进行综合考虑。以下是一个详细的实战分享,涵盖了从需求分析到开发、测试、上线及后期维护的全过程。一、需求分析目标用户群体:明确陪玩系统的目标用户群体,包括游戏玩家、社交需求者等,了解他们的具体需求和偏好。功能需求:根据目标用户群体的需求,确定陪玩系统的核心功能,如实时语音互动、直播间与聊天室、</div> </li> <li><a href="/article/1894234452591177728.htm" title="【Java 常用注解学习笔记1】——Java 常用注解全解析:从基础到实战" target="_blank">【Java 常用注解学习笔记1】——Java 常用注解全解析:从基础到实战</a> <span class="text-muted">猿享天开</span> <a class="tag" taget="_blank" href="/search/Java%E5%BC%80%E5%8F%91%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A/1.htm">Java开发从入门到精通</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>Java常用注解全解析:从基础到实战一、引言Java注解(Annotation)是现代化开发中提升代码简洁性、可维护性和与框架集成的重要工具。本文系统化梳理主流框架(Spring、MyBatis-Plus、Swagger等)的核心注解,通过分类解析、代码示例与最佳实践,帮助开发者精准掌握注解的应用场景与技巧。二、Lombok注解1.代码简化注解注解作用示例注意事项@Data生成getter/set</div> </li> <li><a href="/article/1894221343075921920.htm" title="SpringBoot速成概括" target="_blank">SpringBoot速成概括</a> <span class="text-muted">噗运特</span> <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/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a> <div>视频:黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibili图示:</div> </li> <li><a href="/article/1894209755463872512.htm" title=".NET Core Web API架构解析:应用场景与实例详解" target="_blank">.NET Core Web API架构解析:应用场景与实例详解</a> <span class="text-muted">阿宝Altai</span> <a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a> <div>“.NETCoreWebAPI架构深度解析:实战应用场景与代码示例”内容概述引言简要介绍.NETCore和WebAPI的基本概念。阐述本文的目的:深入解析.NETCoreWebAPI的架构,探讨其在实际项目中的应用场景,并提供代码示例。.NETCoreWebAPI架构解析核心组件:介绍ASP.NETCore框架中的关键组件,如Kestrel服务器、中间件管道、路由等。MVC模式:在WebAPI中的</div> </li> <li><a href="/article/1894204962771103744.htm" title="关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行" target="_blank">关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行</a> <span class="text-muted">bug菌¹</span> <a class="tag" taget="_blank" href="/search/%E5%85%A8%E6%A0%88Bug%E8%B0%83%E4%BC%98%28%E5%AE%9E%E6%88%98%E7%89%88%29/1.htm">全栈Bug调优(实战版)</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/CSDN%E9%97%AE%E7%AD%94%E8%A7%A3%E6%83%91%28%E5%85%A8%E6%A0%88%E7%89%88%29/1.htm">CSDN问答解惑(全栈版)</a><a class="tag" taget="_blank" href="/search/%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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a> <div>本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!问题描述关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行公司10台电脑,本来是在2楼,现在搬到1楼,网络是从楼上引一根网线下来,接</div> </li> <li><a href="/article/1894202190092890112.htm" title="Flutter动画实战指南:打造灵动界面的渐变色动画教程" target="_blank">Flutter动画实战指南:打造灵动界面的渐变色动画教程</a> <span class="text-muted">Coderabo</span> <a class="tag" taget="_blank" href="/search/Flutter%E6%A1%86%E6%9E%B6%E8%AF%A6%E8%A7%A3/1.htm">Flutter框架详解</a><a class="tag" taget="_blank" href="/search/flutter/1.htm">flutter</a><a class="tag" taget="_blank" href="/search/ui/1.htm">ui</a> <div>在Flutter的世界里,动画是提升用户体验不可或缺的一环。无论是简单的渐变效果,还是复杂的过渡动画,Flutter提供了强大的动画API来帮助开发者轻松实现这些效果。本文将深入探讨Flutter中的动画工作原理,并通过一个完整的示例展示如何在Flutter应用中使用动画工作函数,让您的界面动起来。动画基础与概念Flutter中的动画主要基于ticker和controller的概念。Ticker是</div> </li> <li><a href="/article/1894190463905230848.htm" title="机器学习实战:从理论到实践" target="_blank">机器学习实战:从理论到实践</a> <span class="text-muted">静默.\\</span> <a class="tag" taget="_blank" href="/search/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/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> <div>随着人工智能技术的迅猛发展,机器学习作为其核心部分,已经广泛应用于各个领域。它不仅在科技公司中扮演着关键角色,在医疗、金融、零售等行业也展现了巨大的潜力。然而,对于许多初学者来说,如何将理论知识转化为实际操作是一个挑战。本文旨在通过一个具体的案例——预测房价,来介绍机器学习的基本流程和具体操作步骤。我们将使用Python编程语言及其相关的科学计算库,如NumPy、Pandas、Scikit-Lea</div> </li> <li><a href="/article/1894181013169434624.htm" title="15.4 FAISS 向量数据库实战:构建毫秒级响应的智能销售问答系统" target="_blank">15.4 FAISS 向量数据库实战:构建毫秒级响应的智能销售问答系统</a> <span class="text-muted">少林码僧</span> <a class="tag" taget="_blank" href="/search/AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E5%BA%94%E7%94%A8%E5%AE%9E%E6%88%98%E4%B8%93%E6%A0%8F/1.htm">AI大模型应用实战专栏</a><a class="tag" taget="_blank" href="/search/faiss/1.htm">faiss</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/gpt/1.htm">gpt</a><a class="tag" taget="_blank" href="/search/%E6%9E%B6%E6%9E%84/1.htm">架构</a><a class="tag" taget="_blank" href="/search/%E8%AF%AD%E8%A8%80%E6%A8%A1%E5%9E%8B/1.htm">语言模型</a> <div>FAISS向量数据库实战:构建毫秒级响应的智能销售问答系统关键词:FAISS向量数据库、销售知识库构建、相似度检索优化、大规模问答匹配、量化索引技术1.销售问答场景的向量化挑战与解决方案1.1传统检索方案痛点分析</div> </li> <li><a href="/article/1894164865799483392.htm" title="PyTorch实战:手把手教你完成MNIST手写数字识别任务" target="_blank">PyTorch实战:手把手教你完成MNIST手写数字识别任务</a> <span class="text-muted">吴师兄大模型</span> <a class="tag" taget="_blank" href="/search/PyTorch/1.htm">PyTorch</a><a class="tag" taget="_blank" href="/search/pytorch/1.htm">pytorch</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/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%89%8B%E5%86%99%E6%95%B0%E5%AD%97%E6%95%B0%E5%88%AB/1.htm">手写数字数别</a><a class="tag" taget="_blank" href="/search/MNIST/1.htm">MNIST</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/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>系列文章目录Pytorch基础篇01-PyTorch新手必看:张量是什么?5分钟教你快速创建张量!02-张量运算真简单!PyTorch数值计算操作完全指南03-Numpy还是PyTorch?张量与Numpy的神奇转换技巧04-揭秘数据处理神器:PyTorch张量拼接与拆分实用技巧05-深度学习从索引开始:PyTorch张量索引与切片最全解析06-张量形状任意改!PyTorchreshape、tra</div> </li> <li><a href="/article/1894133340383014912.htm" title="Spring Boot嵌入式服务器深度解析:从配置到调优的全方位指南" target="_blank">Spring Boot嵌入式服务器深度解析:从配置到调优的全方位指南</a> <span class="text-muted">珠峰日记</span> <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/%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">服务器</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>文章目录引言一、嵌入式服务器核心原理1.1架构设计特点1.2主流服务器对比二、嵌入式服务器配置实战2.1基础配置模板2.2HTTPS安全配置三、高级调优策略3.1线程池优化(Tomcat示例)3.2响应压缩配置3.3访问日志配置四、服务器切换实战4.1切换至Undertow服务器4.2Undertow性能优化配置五、容器健康监控5.1Actuator端点监控5.2可视化监控方案六、生产环境最佳实践</div> </li> <li><a href="/article/1894127291642998784.htm" title="使用Diffusion Models进行图像超分辩重建" target="_blank">使用Diffusion Models进行图像超分辩重建</a> <span class="text-muted">沉迷单车的追风少年</span> <a class="tag" taget="_blank" href="/search/Diffusion/1.htm">Diffusion</a><a class="tag" taget="_blank" href="/search/Models%E4%B8%8E%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">Models与深度学习</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/%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/%E8%B6%85%E5%88%86%E8%BE%A8%E7%8E%87%E9%87%8D%E5%BB%BA/1.htm">超分辨率重建</a><a class="tag" taget="_blank" href="/search/AIGC/1.htm">AIGC</a><a class="tag" taget="_blank" href="/search/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/1.htm">深度学习</a> <div>DiffusionModels专栏文章汇总:入门与实战前言:图像超分辨率重建是一个经典CV任务,其实LR(低分辨率)和HR(高分辨率)图像仅在高频细节上存在差异。通过添加适当的噪声,LR图像将变得与其HR对应图像无法区分。这篇博客介绍一种方式巧妙利用这个规律使用DiffusionModels进行图像超分辩重建任务。目录贡献概述动机方法详解模型训练论文贡献概述这项研究提出了一种基于扩散逆过程的新图像</div> </li> <li><a href="/article/1894115061564239872.htm" title="Python入门教程丨3.5 正则表达式" target="_blank">Python入门教程丨3.5 正则表达式</a> <span class="text-muted">凌小添</span> <a class="tag" taget="_blank" href="/search/Python%E6%95%99%E7%A8%8B/1.htm">Python教程</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/mysql/1.htm">mysql</a> <div>今天我们来学习Python里超实用的字符串匹配和正则表达式。这是处理文本数据的神器,无论是爬虫、数据清洗还是文本分析,都离不开它,我们从基础语法讲起,再到实战场景,深入体会正则的妙用。1.re库正则表达式(RegularExpression,简称regex或regexp)是一种用来匹配字符串的强大工具。它由一串字符和特殊符号组成,用于描述或匹配一系列符合某种模式的字符串。正则表达式广泛应用于文本搜</div> </li> <li><a href="/article/1894113798336344064.htm" title="A10高效配置实战技巧" target="_blank">A10高效配置实战技巧</a> <span class="text-muted">智能计算研究中心</span> <a class="tag" taget="_blank" href="/search/%E5%85%B6%E4%BB%96/1.htm">其他</a> <div>内容概要在复杂的企业网络环境中,A10设备的配置效率直接影响业务系统的稳定性和响应能力。本文围绕A10Thunder系列设备的全流程调优展开,系统梳理从基础参数校准到高级功能部署的关键步骤,重点解析负载均衡算法与业务场景的适配逻辑、会话保持机制的性能平衡点以及SSL加速优化的硬件资源分配策略。建议在实施配置前,通过A10的AXAPI接口提取现有系统日志,结合业务流量特征制定差异化的调优方案。文中提</div> </li> <li><a href="/article/1894113167265558528.htm" title="勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner" target="_blank">勇敢尝鲜之Springboot3大坑-集成Mybatisplus报错:ddlApplicationRunner</a> <span class="text-muted">青花锁</span> <a class="tag" taget="_blank" href="/search/%E9%A1%B9%E7%9B%AE%E5%AE%9E%E6%88%98/1.htm">项目实战</a><a class="tag" taget="_blank" href="/search/Java%E5%BE%AE%E6%9C%8D%E5%8A%A1/1.htm">Java微服务</a><a class="tag" taget="_blank" href="/search/ddlAppRunner/1.htm">ddlAppRunner</a><a class="tag" taget="_blank" href="/search/Springboot/1.htm">Springboot</a><a class="tag" taget="_blank" href="/search/mybatisplus/1.htm">mybatisplus</a> <div>作者主页:青花锁简介:Java领域优质创作者、Java微服务架构公号作者简历模板、学习资料、面试题库、技术互助文末获取联系方式往期热门专栏回顾专栏描述Java项目实战介绍Java组件安装、使用;手写框架等Aws服务器实战AwsLinux服务器上操作nginx、git、JDK、VueJava微服务实战</div> </li> <li><a href="/article/1894111779001266176.htm" title="Python数据处理掌握Pandas.to_datetime函数时间序列(参数解析与实战)" target="_blank">Python数据处理掌握Pandas.to_datetime函数时间序列(参数解析与实战)</a> <span class="text-muted">步入烟尘</span> <a class="tag" taget="_blank" href="/search/Python%E8%B6%85%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97%E5%85%A8%E5%86%8C/1.htm">Python超入门指南全册</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pandas/1.htm">pandas</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/%E6%97%B6%E9%97%B4%E5%87%BD%E6%95%B0/1.htm">时间函数</a><a class="tag" taget="_blank" href="/search/%E5%8F%82%E6%95%B0%E8%A7%A3%E6%9E%90/1.htm">参数解析</a> <div>本文已收录于《Python超入门指南全册》本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从基础到精通不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/mrdeam/category_12647587.html优点:订阅限时19.9付费专栏,私信博主还可进入全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以</div> </li> <li><a href="/article/1894111652752715776.htm" title="SpringBoot 监控 SQL 运行情况(实战教程)" target="_blank">SpringBoot 监控 SQL 运行情况(实战教程)</a> <span class="text-muted">153_m0_67912929</span> <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/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>1基本概念2添加依赖3配置相关属性4sql监控5慢sql记录6spring监控7去Ad(广告)8获取Druid的监控数据1基本概念Druid是Java语言中最好的数据库连接池。虽然HikariCP的速度稍快,但是,Druid能够提供强大的监控和扩展功能,也是阿里巴巴的开源项目。Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C</div> </li> <li><a href="/article/1894099298770022400.htm" title="SSM框架整合大揭秘:Spring+SpringMVC+MyBatis配置详解与实战" target="_blank">SSM框架整合大揭秘:Spring+SpringMVC+MyBatis配置详解与实战</a> <span class="text-muted">小柒笔记</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>在JavaWeb开发中,SSM(Spring、SpringMVC、MyBatis)框架是常用的技术栈,它们分别负责业务逻辑层、控制层和数据访问层。本文将详细介绍如何整合这三个框架,并通过实例进行说明。SSM框架简介Spring:Spring是一个开源的企业级Java应用框架,它提供了IoC(控制反转)和AOP(面向切面编程)等特性,可以简化Java企业应用的开发。SpringMVC:SpringM</div> </li> <li><a href="/article/1894099045975126016.htm" title="【实战记录】SSL证书部署到阿里云及注意事项" target="_blank">【实战记录】SSL证书部署到阿里云及注意事项</a> <span class="text-muted">AntyRia</span> <a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF%E6%9D%82%E8%AE%B0/1.htm">后端杂记</a><a class="tag" taget="_blank" href="/search/%E9%98%BF%E9%87%8C%E4%BA%91/1.htm">阿里云</a><a class="tag" taget="_blank" href="/search/ssl/1.htm">ssl</a><a class="tag" taget="_blank" href="/search/https/1.htm">https</a> <div>目录前言正文部署流程注意事项总结前言原本正常的服务器在项目经过一次迭代之后突然无法使用https访问,一直显示不能提供安全的链接。先后检查了SSL证书状态、域名状态、服务器状态,都是没有问题的,甚至咨询了阿里的工程师,但是没有解决…于是狠下心来,备份数据,重装服务器…经过一番折腾,也算是可以访问了,特此记录一下。正文部署流程下载证书文件到本地部署到本地项目中下载的文件解压,里面有俩东西。全部复制到</div> </li> <li><a href="/article/1894093622693916672.htm" title="鸿蒙5.0实战案例:基于webView的嵌套滚动" target="_blank">鸿蒙5.0实战案例:基于webView的嵌套滚动</a> <span class="text-muted">敢嗣先锋</span> <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/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</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/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/ArkUI/1.htm">ArkUI</a><a class="tag" taget="_blank" href="/search/%E7%BB%84%E4%BB%B6%E5%8C%96/1.htm">组件化</a><a class="tag" taget="_blank" href="/search/WebView/1.htm">WebView</a><a class="tag" taget="_blank" href="/search/Web%E7%BB%84%E4%BB%B6/1.htm">Web组件</a> <div>往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)✏️鸿蒙(HarmonyOS)北向开发知识点记录~✏️鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~✏️鸿蒙应用开发与鸿蒙系统开发哪个更有前景?✏️嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~✏️对于大前端开发来说,转鸿蒙开发究竟是福还是祸?✏️鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?✏️记录一场鸿蒙开发岗位面</div> </li> <li><a href="/article/1894093624052871168.htm" title="鸿蒙5.0实战案例:基于原生的水印添加能力" target="_blank">鸿蒙5.0实战案例:基于原生的水印添加能力</a> <span class="text-muted">敢嗣先锋</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/%E9%B8%BF%E8%92%99%E5%BC%80%E5%8F%91/1.htm">鸿蒙开发</a><a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</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/ArkUI/1.htm">ArkUI</a><a class="tag" taget="_blank" href="/search/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a> <div>往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)✏️鸿蒙(HarmonyOS)北向开发知识点记录~✏️鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~✏️鸿蒙应用开发与鸿蒙系统开发哪个更有前景?✏️嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~✏️对于大前端开发来说,转鸿蒙开发究竟是福还是祸?✏️鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?✏️记录一场鸿蒙开发岗位面</div> </li> <li><a href="/article/1894092740556288000.htm" title="侯捷 C++ 课程学习笔记:STL 标准库与泛型编程的实战指南" target="_blank">侯捷 C++ 课程学习笔记:STL 标准库与泛型编程的实战指南</a> <span class="text-muted">孤寂大仙v</span> <a class="tag" taget="_blank" href="/search/c%2B%2B/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/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>在侯捷老师的C++系列课程中,《STL标准库与泛型编程》这门课程让我对C++的强大工具——标准模板库(STL)有了全新的认识。STL是现代C++编程的核心,它提供了丰富的数据结构、算法和迭代器,极大地简化了开发工作。侯捷老师通过系统的讲解和实战案例,帮助我掌握了如何高效使用STL来解决实际问题。以下是我对这门课程的学习笔记和心得体会。一、课程核心内容:STL的三大组成部分侯捷老师的课程详细讲解了S</div> </li> <li><a href="/article/1894092613783449600.htm" title="python在web开发中的应用" target="_blank">python在web开发中的应用</a> <span class="text-muted">2501_90802096</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a> <div>Python在Web开发中的应用:框架、技术与实战案例一、引言Python作为一种简洁、高效且功能强大的编程语言,在Web开发领域备受开发者青睐。其丰富的生态系统和活跃的社区支持使得Python成为构建各类Web应用的理想选择。本文将介绍Python在Web开发中的应用,涵盖主流框架、开发技术以及实战案例,帮助读者快速掌握PythonWeb开发的核心技能。---二、PythonWeb开发框架Pyt</div> </li> <li><a href="/article/1894089337302216704.htm" title="Spring-JAVA" target="_blank">Spring-JAVA</a> <span class="text-muted">你在我身后</span> <a class="tag" taget="_blank" href="/search/springboot%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">springboot学习笔记</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a> <div>针对你的问题(211本科、Java开发方向),以下是中级Java开发工程师的晋升时间、薪资水平及技术要求的详细说明,结合国内一线/二线城市现状(数据基于2023年行业调研):一、晋升中级开发工程师的时间1.常规路径最低年限:2.5-3年(需技术快速成长+项目实战)平均年限:3-4年(主流互联网公司标准)关键加速条件:主导过完整模块开发(如订单系统、支付系统)有高并发/分布式项目经验(如QPS100</div> </li> <li><a href="/article/1894088706474700800.htm" title="鸿蒙5.0实战案例:基于原生能力的深色模式适配" target="_blank">鸿蒙5.0实战案例:基于原生能力的深色模式适配</a> <span class="text-muted">敢嗣先锋</span> <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/%E7%A7%BB%E5%8A%A8%E5%BC%80%E5%8F%91/1.htm">移动开发</a><a class="tag" taget="_blank" href="/search/HarmonyOS/1.htm">HarmonyOS</a><a class="tag" taget="_blank" href="/search/harmonyos/1.htm">harmonyos</a><a class="tag" taget="_blank" href="/search/%E7%BB%84%E4%BB%B6%E5%8C%96/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/ui/1.htm">ui</a><a class="tag" taget="_blank" href="/search/ArkUI/1.htm">ArkUI</a><a class="tag" taget="_blank" href="/search/%E9%B8%BF%E8%92%99%E5%BC%80%E5%8F%91/1.htm">鸿蒙开发</a> <div>往期推文全新看点(文中附带全新鸿蒙5.0全栈学习笔录)✏️鸿蒙(HarmonyOS)北向开发知识点记录~✏️鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~✏️鸿蒙应用开发与鸿蒙系统开发哪个更有前景?✏️嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~✏️对于大前端开发来说,转鸿蒙开发究竟是福还是祸?✏️鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?✏️记录一场鸿蒙开发岗位面</div> </li> <li><a href="/article/1894077861065715712.htm" title="【QT教程】QT6硬件高级编程实战案例 QT硬件高级编程" target="_blank">【QT教程】QT6硬件高级编程实战案例 QT硬件高级编程</a> <span class="text-muted">QT性能优化QT原理源码QT界面美化</span> <a class="tag" taget="_blank" href="/search/qt/1.htm">qt</a><a class="tag" taget="_blank" href="/search/qt6.3/1.htm">qt6.3</a><a class="tag" taget="_blank" href="/search/qt5/1.htm">qt5</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a><a class="tag" taget="_blank" href="/search/QT%E6%95%99%E7%A8%8B/1.htm">QT教程</a> <div>QT6硬件高级编程实战案例使用AI技术辅助生成QT界面美化视频课程QT性能优化视频课程QT原理与源码分析视频课程QTQMLC++扩展开发视频课程免费QT视频课程您可以看免费1000+个QT技术视频免费QT视频课程QT统计图和QT数据可视化视频免费看免费QT视频课程QT性能优化视频免费看免费QT视频课程QT界面美化视频免费看1QT6硬件连接与配置1.1硬件平台选择与搭建1.1.1硬件平台选择与搭建硬</div> </li> <li><a href="/article/80.htm" title="java杨辉三角" target="_blank">java杨辉三角</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a> <div> package com.algorithm; /** * @Description 杨辉三角 * @author FuJianyong * 2015-1-22上午10:10:59 */ public class YangHui { public static void main(String[] args) { //初始化二维数组长度 int[][] y</div> </li> <li><a href="/article/207.htm" title="《大话重构》之大布局的辛酸历史" target="_blank">《大话重构》之大布局的辛酸历史</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/%E9%87%8D%E6%9E%84/1.htm">重构</a> <div>《大话重构》中提到“大布局你伤不起”,如果企图重构一个陈旧的大型系统是有非常大的风险,重构不是想象中那么简单。我目前所在公司正好对产品做了一次“大布局重构”,下面我就分享这个“大布局”项目经验给大家。 背景 公司专注于企业级管理产品软件,企业有大中小之分,在2000年初公司用JSP/Servlet开发了一套针对中</div> </li> <li><a href="/article/334.htm" title="电驴链接在线视频播放源码" target="_blank">电驴链接在线视频播放源码</a> <span class="text-muted">dubinwei</span> <a class="tag" taget="_blank" href="/search/%E6%BA%90%E7%A0%81/1.htm">源码</a><a class="tag" taget="_blank" href="/search/%E7%94%B5%E9%A9%B4/1.htm">电驴</a><a class="tag" taget="_blank" href="/search/%E6%92%AD%E6%94%BE%E5%99%A8/1.htm">播放器</a><a class="tag" taget="_blank" href="/search/%E8%A7%86%E9%A2%91/1.htm">视频</a><a class="tag" taget="_blank" href="/search/ed2k/1.htm">ed2k</a> <div>本项目是个搜索电驴(ed2k)链接的应用,借助于磁力视频播放器(官网: http://loveandroid.duapp.com/ 开放平台),可以实现在线播放视频,也可以用迅雷或者其他下载工具下载。 项目源码: http://git.oschina.net/svo/Emule,动态更新。也可从附件中下载。 项目源码依赖于两个库项目,库项目一链接: http://git.oschina.</div> </li> <li><a href="/article/461.htm" title="Javascript中函数的toString()方法" target="_blank">Javascript中函数的toString()方法</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/js/1.htm">js</a><a class="tag" taget="_blank" href="/search/toString/1.htm">toString</a><a class="tag" taget="_blank" href="/search/function/1.htm">function</a><a class="tag" taget="_blank" href="/search/object/1.htm">object</a> <div>简述 The toString() method returns a string representing the source code of the function. 简译之,Javascript的toString()方法返回一个代表函数源代码的字符串。 句法 function.</div> </li> <li><a href="/article/588.htm" title="struts处理自定义异常" target="_blank">struts处理自定义异常</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/struts/1.htm">struts</a> <div>很多时候我们会用到自定义异常来表示特定的错误情况,自定义异常比较简单,只要分清是运行时异常还是非运行时异常即可,运行时异常不需要捕获,继承自RuntimeException,是由容器自己抛出,例如空指针异常。 非运行时异常继承自Exception,在抛出后需要捕获,例如文件未找到异常。 此处我们用的是非运行时异常,首先定义一个异常LoginException: /** * 类描述:登录相</div> </li> <li><a href="/article/715.htm" title="Linux中find常见用法示例" target="_blank">Linux中find常见用法示例</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a> <div>Linux中find常见用法示例 ·find path -option [ -print ] [ -exec -ok command ] {} \; find命令的参数;</div> </li> <li><a href="/article/842.htm" title="SpringMVC的各种参数绑定方式" target="_blank">SpringMVC的各种参数绑定方式</a> <span class="text-muted">Harry642</span> <a class="tag" taget="_blank" href="/search/springMVC/1.htm">springMVC</a><a class="tag" taget="_blank" href="/search/%E7%BB%91%E5%AE%9A/1.htm">绑定</a><a class="tag" taget="_blank" href="/search/%E8%A1%A8%E5%8D%95/1.htm">表单</a> <div>1. 基本数据类型(以int为例,其他类似): Controller代码: @RequestMapping("saysth.do") public void test(int count) { } 表单代码: <form action="saysth.do" method="post&q</div> </li> <li><a href="/article/969.htm" title="Java 获取Oracle ROWID" target="_blank">Java 获取Oracle ROWID</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a> <div> A ROWID is an identification tag unique for each row of an Oracle Database table. The ROWID can be thought of as a virtual column, containing the ID for each row. The oracle.sql.ROWID class i</div> </li> <li><a href="/article/1096.htm" title="java获取方法的参数名" target="_blank">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/jdk/1.htm">jdk</a><a class="tag" taget="_blank" href="/search/parameter/1.htm">parameter</a><a class="tag" taget="_blank" href="/search/method/1.htm">method</a><a class="tag" taget="_blank" href="/search/reflect/1.htm">reflect</a> <div>reflect.ClassInformationUtil.java package reflect; import javassist.ClassPool; import javassist.CtClass; import javassist.CtMethod; import javassist.Modifier; import javassist.bytecode.CodeAtt</div> </li> <li><a href="/article/1223.htm" title="JAVA正则表达式匹配 查找 替换 提取操作" target="_blank">JAVA正则表达式匹配 查找 替换 提取操作</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F/1.htm">正则表达式</a><a class="tag" taget="_blank" href="/search/%E6%9B%BF%E6%8D%A2/1.htm">替换</a><a class="tag" taget="_blank" href="/search/%E6%8F%90%E5%8F%96/1.htm">提取</a><a class="tag" taget="_blank" href="/search/%E6%9F%A5%E6%89%BE/1.htm">查找</a> <div>正则表达式的查找;主要是用到String类中的split(); String str; str.split();方法中传入按照什么规则截取,返回一个String数组 常见的截取规则: str.split("\\.")按照.来截取 str.</div> </li> <li><a href="/article/1350.htm" title="Java中equals()与hashCode()方法详解" target="_blank">Java中equals()与hashCode()方法详解</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/set/1.htm">set</a><a class="tag" taget="_blank" href="/search/equals%28%29/1.htm">equals()</a><a class="tag" taget="_blank" href="/search/hashCode%28%29/1.htm">hashCode()</a> <div>一.equals()方法详解 equals()方法在object类中定义如下: public boolean equals(Object obj) { return (this == obj); } 很明显是对两个对象的地址值进行的比较(即比较引用是否相同)。但是我们知道,String 、Math、I</div> </li> <li><a href="/article/1477.htm" title="精通Oracle10编程SQL(4)使用SQL语句" target="_blank">精通Oracle10编程SQL(4)使用SQL语句</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</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/plsql/1.htm">plsql</a> <div>--工资级别表 create table SALGRADE ( GRADE NUMBER(10), LOSAL NUMBER(10,2), HISAL NUMBER(10,2) ) insert into SALGRADE values(1,0,100); insert into SALGRADE values(2,100,200); inser</div> </li> <li><a href="/article/1604.htm" title="【Nginx二】Nginx作为静态文件HTTP服务器" target="_blank">【Nginx二】Nginx作为静态文件HTTP服务器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/HTTP%E6%9C%8D%E5%8A%A1%E5%99%A8/1.htm">HTTP服务器</a> <div> Nginx作为静态文件HTTP服务器 在本地系统中创建/data/www目录,存放html文件(包括index.html) 创建/data/images目录,存放imags图片 在主配置文件中添加http指令 http { server { listen 80; server_name </div> </li> <li><a href="/article/1731.htm" title="kafka获得最新partition offset" target="_blank">kafka获得最新partition offset</a> <span class="text-muted">blackproof</span> <a class="tag" taget="_blank" href="/search/kafka/1.htm">kafka</a><a class="tag" taget="_blank" href="/search/partition/1.htm">partition</a><a class="tag" taget="_blank" href="/search/offset/1.htm">offset</a><a class="tag" taget="_blank" href="/search/%E6%9C%80%E6%96%B0/1.htm">最新</a> <div>kafka获得partition下标,需要用到kafka的simpleconsumer import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.</div> </li> <li><a href="/article/1858.htm" title="centos 7安装docker两种方式" target="_blank">centos 7安装docker两种方式</a> <span class="text-muted">ronin47</span> <div> 第一种是采用yum 方式 yum install -y docker </div> </li> <li><a href="/article/1985.htm" title="java-60-在O(1)时间删除链表结点" target="_blank">java-60-在O(1)时间删除链表结点</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div> public class DeleteNode_O1_Time { /** * Q 60 在O(1)时间删除链表结点 * 给定链表的头指针和一个结点指针(!!),在O(1)时间删除该结点 * * Assume the list is: * head->...->nodeToDelete->mNode->nNode->..</div> </li> <li><a href="/article/2112.htm" title="nginx利用proxy_cache来缓存文件" target="_blank">nginx利用proxy_cache来缓存文件</a> <span class="text-muted">cfyme</span> <a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a> <div>user zhangy users; worker_processes 10; error_log /var/vlogs/nginx_error.log crit; pid /var/vlogs/nginx.pid; #Specifies the value for ma</div> </li> <li><a href="/article/2239.htm" title="[JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题" target="_blank">[JWFD开源工作流]JWFD嵌入式语法分析器负号的使用问题</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a> <div> 假如我们需要用JWFD的语法分析模块定义一个带负号的方程式,直接在方程式之前添加负号是不正确的,而必须这样做: string str01 = "a=3.14;b=2.71;c=0;c-((a*a)+(b*b))" 定义一个0整数c,然后用这个整数c去</div> </li> <li><a href="/article/2366.htm" title="如何集成支付宝官方文档" target="_blank">如何集成支付宝官方文档</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a> <div>官方文档下载地址 https://b.alipay.com/order/productDetail.htm?productId=2012120700377310&tabId=4#ps-tabinfo-hash 集成的必要条件 1. 需要有自己的Server接收支付宝的消息 2. 需要先制作app,然后提交支付宝审核,通过后才能集成 调试的时候估计会真的扣款,请注意 </div> </li> <li><a href="/article/2493.htm" title="应该在什么时候使用Hadoop" target="_blank">应该在什么时候使用Hadoop</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>原帖地址:http://blog.chinaunix.net/uid-301743-id-3925358.html 存档,某些观点与我不谋而合,过度技术化不可取,且hadoop并非万能。 --------------------------------------------万能的分割线-------------------------------- 有人问我,“你在大数据和Hado</div> </li> <li><a href="/article/2620.htm" title="在GridView中对于有外键的字段使用关联模型进行搜索和排序" target="_blank">在GridView中对于有外键的字段使用关联模型进行搜索和排序</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>在GridView中使用关联模型进行搜索和排序 首先我们有两个模型它们直接有关联: class Author extends CActiveRecord { ... } class Post extends CActiveRecord { ... function relations() { return array( '</div> </li> <li><a href="/article/2747.htm" title="使用NSString 的格式化大全" target="_blank">使用NSString 的格式化大全</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Objective-C/1.htm">Objective-C</a> <div>格式定义The format specifiers supported by the NSString formatting methods and CFString formatting functions follow the IEEE printf specification; the specifiers are summarized in Table 1. Note that you c</div> </li> <li><a href="/article/2874.htm" title="使用activeX插件对象object滚动有重影" target="_blank">使用activeX插件对象object滚动有重影</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/activeX%E6%8F%92%E4%BB%B6/1.htm">activeX插件</a><a class="tag" taget="_blank" href="/search/%E6%BB%9A%E5%8A%A8%E6%9C%89%E9%87%8D%E5%BD%B1/1.htm">滚动有重影</a> <div> 使用activeX插件对象object滚动有重影 <object style="width:0;" id="abc" classid="CLSID:D3E3970F-2927-9680-BBB4-5D0889909DF6" codebase="activex/OAX339.CAB#</div> </li> <li><a href="/article/3001.htm" title="SpringMVC4零配置" target="_blank">SpringMVC4零配置</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/springmvc4/1.htm">springmvc4</a> <div>基于Servlet3.0规范和SpringMVC4注解式配置方式,实现零xml配置,弄了个小demo,供交流讨论。 项目说明如下: 1.db.sql是项目中用到的表,数据库使用的是oracle11g 2.该项目使用mvn进行管理,私服为自搭建nexus,项目只用到一个第三方 jar,就是oracle的驱动; 3.默认项目为零配置启动,如果需要更改启动方式,请</div> </li> <li><a href="/article/3128.htm" title="《开源框架那点事儿16》:缓存相关代码的演变" target="_blank">《开源框架那点事儿16》:缓存相关代码的演变</a> <span class="text-muted">j2eetop</span> <a class="tag" taget="_blank" href="/search/%E5%BC%80%E6%BA%90%E6%A1%86%E6%9E%B6/1.htm">开源框架</a> <div>问题引入 上次我参与某个大型项目的优化工作,由于系统要求有比较高的TPS,因此就免不了要使用缓冲。 该项目中用的缓冲比较多,有MemCache,有Redis,有的还需要提供二级缓冲,也就是说应用服务器这层也可以设置一些缓冲。 当然去看相关实现代代码的时候,大致是下面的样子。 [java] view plain copy print ? public vo</div> </li> <li><a href="/article/3255.htm" title="AngularJS浅析" target="_blank">AngularJS浅析</a> <span class="text-muted">kvhur</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>概念 AngularJS is a structural framework for dynamic web apps. 了解更多详情请见原文链接:http://www.gbtags.com/gb/share/5726.htm Directive 扩展html,给html添加声明语句,以便实现自己的需求。对于页面中html元素以ng为前缀的属性名称,ng是angular的命名空间</div> </li> <li><a href="/article/3382.htm" title="架构师之jdk的bug排查(一)---------------split的点号陷阱" target="_blank">架构师之jdk的bug排查(一)---------------split的点号陷阱</a> <span class="text-muted">nannan408</span> <a class="tag" taget="_blank" href="/search/split/1.htm">split</a> <div>1.前言. jdk1.6的lang包的split方法是有bug的,它不能有效识别A.b.c这种类型,导致截取长度始终是0.而对于其他字符,则无此问题.不知道官方有没有修复这个bug. 2.代码 String[] paths = "object.object2.prop11".split("'"); System.ou</div> </li> <li><a href="/article/3509.htm" title="如何对10亿数据量级的mongoDB作高效的全表扫描" target="_blank">如何对10亿数据量级的mongoDB作高效的全表扫描</a> <span class="text-muted">quentinXXZ</span> <a class="tag" taget="_blank" href="/search/mongodb/1.htm">mongodb</a> <div> 本文链接: http://quentinXXZ.iteye.com/blog/2149440 一、正常情况下,不应该有这种需求 首先,大家应该有个概念,标题中的这个问题,在大多情况下是一个伪命题,不应该被提出来。要知道,对于一般较大数据量的数据库,全表查询,这种操作一般情况下是不应该出现的,在做正常查询的时候,如果是范围查询,你至少应该要加上limit。 说一下,</div> </li> <li><a href="/article/3636.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> #define N 10 int main() { int x,y,z; for(x=1;x<=N;x++) for(y=0;y<=N;y++) for(z=0;z<=N;z++) if(x*100+y*10+z == x*x*x</div> </li> <li><a href="/article/3763.htm" title="JSP指令" target="_blank">JSP指令</a> <span class="text-muted">wyzuomumu</span> <a class="tag" taget="_blank" href="/search/jsp/1.htm">jsp</a> <div> jsp指令的一般语法格式: <%@ 指令名 属性 =”值 ” %> 常用的三种指令: page,include,taglib page指令语法形式: <%@ page 属性 1=”值 1” 属性 2=”值 2”%> include指令语法形式: <%@include file=”relative url”%> (jsp可以通过 include</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>