上下文

Spring Bean的生命周期和作用域

痞子三分冷 提交于 2020-01-16 02:49:27
Bean的作用域 Spring应用中,对象实例都是在Container中,负责创建、装配、配置和管理生命周期(new到finalize()) Spring Container分为两种:   1、BeanFactory:提供DI支持   2、ApplicationContext:基于 BeanFactory构建,提供应用框架级别的服务 ApplicationContext实现类 :    1、AnnotationConfigApplicationContext: 从一个或多个基于Java的配置类中加载Spring应用上下文    2、AnnotationConfigWebApplicationContext: 从一个或多个基于Java的配置类中加载Spring Web应用上下文    3、ClassPathXmlApplicationContext: 从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源    4、FileSystemXmlappl icationcontext : 从文件系统下的一个或多个XML配置文件中加载上下文定义    5、XmlWebApplicationContext: 从Web应用下的一个或多个XML配置文件中加载上下文定义 加载上下文的方式都很相似:都是直接new。例如:ApplicationContext

Django模板继承下的动态数据传递—上下文处理器

亡梦爱人 提交于 2020-01-16 00:13:16
参考: http://www.caodahua.cn/detail/3/ 模板继承可以减少页面内容的重复定义,实现页面内容的重用。我的个人博客右侧的导航栏都是继承base页面从而让代码得到最大程度的复用。但是当父模板中有动态数据的话,这些动态数据在子模版中是不会显示的。我们可以通过自定义上下文处理器来解决。 Django上下文处理器(Context Processor) 上下文处理器是接收HttpRequest为参数并返回dict形式的数据的函数。它的主要用途是将所有模板共享的公共数据添加到上下文中,从而不必在每个视图中重复定义。 在settings.py文件中内置了多个上下文处理器: TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], 'APP_DIRS': True, 'OPTIONS': { # 上下文处理器:context_processors 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request',

EF 关键字

心已入冬 提交于 2020-01-15 02:18:32
   https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/query-keywords 子句 说明 from 指定数据源和范围变量(类似于迭代变量)。 where 基于由逻辑 AND 和 OR 运算符( && 或 || )分隔的一个或多个布尔表达式筛选源元素。 select 指定执行查询时,所返回序列中元素的类型和形状。 group 根据指定的密钥值对查询结果分组。 into 提供可作为对 join、group 或 select 子句结果引用的标识符。 orderby 根据元素类型的默认比较器对查询结果进行升序或降序排序。 join 基于两个指定匹配条件间的相等比较而联接两个数据源。 let 引入范围变量,在查询表达式中存储子表达式结果。 in join 子句中的上下文关键字。 on join 子句中的上下文关键字。 equals join 子句中的上下文关键字。 by group 子句中的上下文关键字。 ascending orderby 子句中的上下文关键字。 descending orderby 子句中的上下文关键字。 来源: https://www.cnblogs.com/buchizaodian/p/10925112.html

详解 new/bind/apply/call 的模拟实现

有些话、适合烂在心里 提交于 2020-01-14 18:29:27
详解 new/bind/apply/call 的模拟实现 分步实现 new/bind/apply/call 函数。 new 的模拟实现 先看一下真正的 new 的使用方法: function MyClass(name, age){ this.name = name this.age = age } var obj = new MyClass({name:'asd', age:10}) 复制代码 new 是关键字,调用方式是没法模仿的,只能以函数的形式实现,比如 myNew() 。 然后规定一下 myNew 接收参数的方式: var obj2 = mynew(MyClass, 'asd', 10) 复制代码 第一阶段:基本实现 创建一个新对象,通过将其 __proto__ 指向构造函数的 prototype 实现继承 function mynew(){ // 新建空对象 var obj = {} // 第一个参数是构造函数 var constructor = [].shift.call(arguments) // 其余的参数是构造函数的参数 var args = [].slice.call(arguments) // 修改原型 obj.__proto__ = constructor.prototype // 修改构造函数上下文,为 obj 赋值 constructor.apply

JS 之 引擎运行原理

一个人想着一个人 提交于 2020-01-14 11:06:13
今天跟大家分享下JS 之 引擎运行原理的知识。 1 一些名词 JS引擎 — 一个读取代码并运行的引擎,没有单一的“JS引擎”;,每个浏览器都有自己的引擎,如谷歌有V。 作用域 — 可以从中访问变量的“区域”。 词法作用域— 在词法阶段的作用域,换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变。 块作用域 — 由花括号{}创建的范围 作用域链 — 函数可以上升到它的外部环境(词法上)来搜索一个变量,它可以一直向上查找,直到它到达全局作用域。 同步 — 一次执行一件事, “同步”引擎一次只执行一行,JavaScript是同步的。 异步 — 同时做多个事,JS通过浏览器API模拟异步行为 事件循环(Event Loop) - 浏览器API完成函数调用的过程,将回调函数推送到回调队列(callback queue),然后当堆栈为空时,它将回调函数推送到调用堆栈。 堆栈 —一种数据结构,只能将元素推入并弹出顶部元素。 想想堆叠一个字形的塔楼; 你不能删除中间块,后进先出。 堆 — 变量存储在内存中。 调用堆栈 — 函数调用的队列,它实现了堆栈数据类型,这意味着一次可以运行一个函数。调用函数将其推入堆栈并从函数返回将其弹出堆栈。 执行上下文 — 当函数放入到调用堆栈时由JS创建的环境。 闭包 — 当在另一个函数内创建一个函数时,它

# ConfigureAwait常见问题解答

怎甘沉沦 提交于 2020-01-14 00:34:50
原文: https://devblogs.microsoft.com/dotnet/configureawait-faq/ .NET 在七多年前在语言和类库添加了 async/await 。在那个时候,它像野火一样流行,不仅遍及.NET生态系统,而且还可以以多种其他语言和框架进行复制。在利用异步的其他语言构造,提供异步支持的API以及进行async/ await相关的基础架构方面的基本改进方面,.NET也实现了很多改进(特别是.NET Core的性能和支持诊断的改进) 。 但是, async/ await 依旧引起疑问的一个方面是 ConfigureAwait 在这篇文章中,我希望回答其中的许多问题。我希望这篇文章从头到尾都是可读的,并且是可以用作将来参考的常见问题解答(FAQ)列表。 要真正理解 ConfigureAwait ,我们需要提前一点开始… 什么是SynchronizationContext? System.Threading.SynchronizationContext 文档这样描述 SynchronizationContext :它在各种同步模型中提供传输同步上下文的基本功能。这并不是一个显而易懂的描述。 对于99.9%的情况, SynchronizationContext 仅是一种提供虚拟 Post 方法的类型,该方法需要委托以异步方式执行(还有各在

SpringMvc Day01

江枫思渺然 提交于 2020-01-13 16:37:07
1. Spring与Web环境集成 1.1 ApplicationContext应用上下文获取方式 应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,应用上下文对象创建多次。 在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在任意位置从域中获得应用上下文ApplicationContext对象了。 1.2 Spring提供获取应用上下文的工具 上面的分析不用手动实现,Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端工具WebApplicationContextUtils供使用者获得应用上下文对象。 所以我们需要做的只有两件事: ①在web

常用NGINX配置指令翻译

落花浮王杯 提交于 2020-01-13 06:39:04
Core rtmp 语法: rtmp {…} 上下文: root 包含所有RTMP设置的块 server 语法: server {…} 上下文: rtmp 声明RTMP服务器实例 rtmp { server { } } listen 语法: isten (addr[:port]|port|unix:path) [bind] [ipv6only=on|off] so_keepalive=on|off|keepidle:keepintvl:keepcnt|proxy_protocol 上下文: server ( 所有的语句结束不要忘记加上分号 ) server { listen 1935 ; } application 语法: application name {…} 上下文: server 创建RTMP应用程序(类似电视频道),与http 配置中的location不一样,名字不可以模式匹配 server { listen 1935 ; application myapp { } } timeout 语法: timeout value 上下文: rtmp, server 套接字超时时间,该值主要用于写入。大多数时间,RTMP模块不会期望除发布者套接字之外的所有套接字上的任何活动。如果您希望断开的套接字快速断开连接,请使用诸如keepalive或RTMP ping之类的活动工具。

Python并发编程协程(Coroutine)之Gevent

南楼画角 提交于 2020-01-13 03:04:17
转载自https://www.cnblogs.com/zhaof/p/7536569.html event官网文档地址: http://www.gevent.org/contents.html 基本概念 我们通常所说的协程Coroutine其实是corporate routine的缩写,直接翻译为协同的例程,一般我们都简称为协程。 在linux系统中,线程就是轻量级的进程,而我们通常也把协程称为轻量级的线程即微线程。 进程和协程 下面对比一下进程和协程的相同点和不同点: 相同点: 我们都可以把他们看做是一种执行流,执行流可以挂起,并且后面可以在你挂起的地方恢复执行,这实际上都可以看做是continuation,关于这个我们可以通过在linux上运行一个hello程序来理解: shell进程和hello进程: 开始,shell进程在运行,等待命令行的输入 执行hello程序,shell通过系统调用来执行我们的请求,这个时候系统调用会讲控制权传递给操作系统。操作系统保存shell进程的上下文,创建一个hello进程以及其上下文并将控制权给新的hello进程。 hello进程终止后,操作系统恢复shell进程的上下文,并将控制权传回给shell进程 shell进程继续等待下个命令的输入 当我们挂起一个执行流的时,我们要保存的东西: 栈, 其实在你切换前你的局部变量

Django 上下文管理器

不羁岁月 提交于 2020-01-13 01:57:04
上下文管理器: 1、每个view里面都需要用到的操作,那你就放到上下文管理器里面查 2、先定义一个函数,函数必须有一个参数,是request 3、这个函数要返回一个字典 4、要加在配置文件里面 TEMPLATES=>options=> 来源: CSDN 作者: 挲love的成长积累 链接: https://blog.csdn.net/qq_32703491/article/details/103765547