框架

Spring笔记系列--1

末鹿安然 提交于 2020-03-20 10:30:41
什么是Spring? Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整 合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架 什么是IOC(控制反转)? 第一次看到IOC是在大内老A的一篇.net Core框架解析上看到的,我的理解是:IOC是一种框架设计思想,它定义了一个容器,将原本由程序做的一些操作放在容器中,交由框架来实现~ 这样说可能有点抽象,举个简单的例子,我们在使用MVC框架的时候,它的流程是通过路由到指定的控制器,再通过控制器来激活相应的View视图。我们简单的剖析一下它的实现(大内老A的文章里有讲): 首先我需要加一个监听器来监听用户的请求(java有三大组件,监听器,拦截器,servlet,.net中不太确定,应该也差不多),然后需要定义一个控制器根据用户请求来找对应的视图,再一个视图解析器用来显示视图。当一个请求过来的时候,如果用程序来实现我们这个流程,需要先实例化控制器,再实例化视图

转载关于IOC的理解

怎甘沉沦 提交于 2020-03-20 07:26:49
转载自:http://blog.csdn.net/m13666368773/article/details/7802126 一. IoC理论的背景    我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑。   如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是 这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问 题,就可能会影响到整个齿轮组的正常运转。 齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临 更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。   耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。 为了解决对象之间的耦合度过高的问题

微软开放 .NET 框架源代码

孤者浪人 提交于 2020-03-20 03:44:56
微软将会在 Visual Studio 2008 正式发布的同时开放.NET框架的源代码库,开放是基于 Microsoft Reference License 的,也就是说,任何同意了此协议的人都可以自由地浏览源代码库。 最初开放的库包括基本类库(系统命名空间、IO、正则表达式等),ASP.NET,WinForms 以及 WPF,随后微软还会添加更多内容。 微软提供了两种访问源代码的方式: 下载一个包含所有源代码的包,安装并本地浏览 将源代码整合在Visual Studio 2008中,开发者可以直接在.NET框架源代码中调试自己的代码。微软将会在网上公布的源代码服务器中加以标记,以方便客户端存取。要开启这项功能,开发者需要设置源代码服务器的URI,当开发者逐行调试代码的时候,如果需要,就可以直接跳转进入.NET基本类库源代码进行调试。 更多相关信息可以参考这段 对 Shawn Burke 的访谈 ,另外 Scott Guthrie 也撰文介绍了 如何在 VS2008 中使用此功能 。 这对于.NET开发者来说绝对是一个好消息,不过微软怎么就不选择一个更开放的许可证呢。.NET的开源实现Mono项目已经进行的非常的成功,微软这样的开放源代码也无助于在.NET在Windows以外的系统上运行,还得靠Mono. Mono老大Miguel de Icaza 的相关评论:

一步步创建自己的 iOS 框架

*爱你&永不变心* 提交于 2020-03-19 13:37:25
3 月,跳不动了?>>> 创建你的第一个iOS框架 如果你曾经试图去创建一个自己的iOS框架的话,你应该知道这件事并不是那些畏惧困难的人能够成功完成的-毕竟管理依赖和编写测试并不容易。这篇文章将从开始到最终完成一步步的进行讲解,以便你掌握后可以更好的创建自己的框架。 在教程中我们会构建一个框架,框架里面会暴露一个名为 RGBUIColor(red:green:blue) 的函数,该函数会返回使用这些参数创建的 UIColor 对象。我们会使用 Swift 语言,并且使用 Carthage 作为依赖项的管理工具。我们的框架将会支持通过 Carthage 、 CocoaPods 或者 git 来使用。 让我们开始吧! 创建Xcode工程 选择 File -> New -> Project 在左侧的选择 iOS -> Framework & Library ,右侧选择“Cocoa Touch Framework”。 点击“下一步”,并填写选项提示。确保以及勾选了“Include Unit Tests”。 选择工程保存的位置。 不要勾选“Create Git repository on My Mac”,我们在后面手动进行设置。 点击“创建”并且打开工程。 选择 File -> Save As Workspace 并使用工程相同的名字保存到相同的目录中。之所以创建 workspace

前端优化带来的思考,浅谈前端工程化

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-19 13:01:10
这段时间对项目做了一次整体的优化,全站有了20%左右的提升(本来载入速度已经1.2S左右了,优化度很低),算一算已经做了四轮的全站性能优化了,回顾几次的优化手段,基本上几个字就能说清楚: 传输层面:减少请求数,降低请求量 执行层面:减少重绘&回流 传输层面的从来都是优化的核心点,而这个层面的优化要对浏览器有一个基本的认识,比如: ① 网页自上而下的解析渲染,边解析边渲染,页面内CSS文件会阻塞渲染,异步CSS文件会导致回流 ② 浏览器在document下载结束会检测静态资源,新开线程下载(有并发上限),在带宽限制的条件下,无序并发会导致主资源速度下降,从而影响首屏渲染 ③ 浏览器缓存可用时会使用缓存资源,这个时候可以避免请求体的传输,对性能有极大提高 衡量性能的重要指标为首屏载入速度(指页面可以看见,不一定可交互),影响首屏的最大因素为请求,所以请求是页面真正的杀手,一般来说我们会做这些优化: 减少请求数 ① 合并样式、脚本文件 ② 合并背景图片 ③ CSS3图标、Icon Font 降低请求量 ① 开启GZip ② 优化静态资源,jQuery->Zepto、阉割IScroll、去除冗余代码 ③ 图片无损压缩 ④ 图片延迟加载 ⑤ 减少Cookie携带 很多时候,我们也会采用类似“时间换空间、空间换时间”的做法,比如: ① 缓存为王,对更新较缓慢的资源&接口做缓存(浏览器缓存

使用loopback创建nodejs框架

懵懂的女人 提交于 2020-03-19 12:47:59
一、创建应用 slc loopback 二、创建模块 slc loopback:model 三、运行程序 slc run 四、创建数据库配置 slc loopback:datasource 五、下载连接器 npm install loopback-connector-mongodb --save 六、安装mongodb npm install mongodb apt-get install mongodb-clients apt-get install mongodb-server 七、采用环境变量更改数据库 NODE_ENV=dev slc run 表示使用server/datasources.dev.js配置做数据库配置 八、安装strong-studio API设计工具 npm install -g http://get-studio.strongloop.com/strong-studio.tgz strong-studio 启动studio 来源: https://www.cnblogs.com/HuiLove/p/4976317.html

框架的概念及用反射技术开发框架的原理

老子叫甜甜 提交于 2020-03-18 12:42:17
某厂面试归来,发现自己落伍了!>>> 一、框架与工具类概念 我做房子卖给用户住,由用户自己安装门窗和空调,我做的房子就是框架,用户需要使用我的框架,把门窗插入进我提供的框架中。 框架与工具类有区别,工具类被用户的类调用,而框架则是调用用户提供的类 。 二、框架要解决的核心问题 1、我在写框架(房子)时,你这个用户可能还在上小学,还不会写程序呢?我写的框架程序怎样能调用到你以后写的类(门窗)呢? 2、因为在写才程序时无法知道要被调用的类名,所以,在程序中无法直接new 某个类的实例对象了,而要用反射方式来做。 三、综合案例 1、先直接用new 语句创建ArrayList和HashSet的实例对象,演示用eclipse自动生成 ReflectPoint类的equals和hashcode方法,比较两个集合的运行结果差异。 2、然后改为采用配置文件加反射的方式创建ArrayList和HashSet的实例对象,比较观察运行结果差异。 四、代码说明 1、HashCodeReflectTest.java package staticimport.reflect; import java.io.FileInputStream; import java.io.InputStream; import java.util.Collection; import java.util.Properties;

值得推荐的开源C/C++框架和库

限于喜欢 提交于 2020-03-18 06:03:14
值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。 下载链接: http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。 下载链接: http://sourceforge.net/projects/tinyhttpd/ - 3. cJSON cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。 cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 项目主页: http://sourceforge.net/projects/cjson/ - 4. CMockery

关于python,Django框架数据库迁移无法迁移问题

三世轮回 提交于 2020-03-17 20:43:04
python Django web框架开发 Django数据迁移 创建表结构:python manage.py migrate Django模型变更:python manage.py makemigrations app名 创建表结构:python manage.py migrate app名 第一次数据迁移依次执行上述三条命令,即可实现数据的迁移,前提为已经建好数据库。 但是偶尔会遇到这种情况,当项目由于某些原因,开始设计时并未建立完整的数据库表,后期新加需求时需要添加若干张新表,但又不影响之前表里的数据,此时就会很麻烦 因为当第一次迁移数据库表时,已经生成了Django内置的一些表,如果再次迁移就会重复,导致迁移报错 此种情况,提出两种解决办法,可供参考 1 ,若无数据保留要求,可直接删除数据库表,重新迁移一次数据库(对数据没有要求) ***2,***若之前的表中又大量数据,则不能直接删除数据库表,此时可以在model.py中新加入表 然后进入migrations文件夹下,删除下图所示文件 重新通过python manage.py makemigrations app名 命令,使Django模型变更。 执行完这些操作之后,直接在数据库建立一张新表,设计表完全相同于model.py中的新增数据库表,这样就避免了Django数据迁移表冲突的问题。 来源: CSDN 作者: