上下文

SpringMVC启动过程

匆匆过客 提交于 2020-01-10 05:49:14
1、 对于一个web应用,其部署在web容器中,web容器提供一个其一个全局的上下文环境,这个上下文环境就是ServletContext,它为后面的spring IoC容器提供宿主环境; 2、 web.xml中有配置ContextLoaderListener,也可以自定义一个实现ServletContextListener接口的Listener方法,web.xml中的配置实例如下: <listener> <listener-class>com.manager.init.SystemInitListener</listener-class> </listener> <listener>     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> Web容器启动时触发ServletContextEvent事件,被contextLoaderListener监听到,并调用contextInitialized方法: /** * Initialize the root web application context. */ public void contextInitialized(ServletContextEvent event) { this

块级格式化上下文

这一生的挚爱 提交于 2020-01-10 02:56:32
块级格式化上下文听说过多次,自己也去看了许多文章,但自己总是觉得晦涩,搞不清楚,后来又再去查了下很多文章,终于觉得自己理解一些了,希望自己描述出来能够准确和易懂。 Formatting context Formatting context 是页面的一个渲染区域,它有着自己的渲染规则,决定渲染区域里面的元素怎么定位,以及里面的元素之间的相互作用。而块级格式化上下文(Block fomatting context)是其中的一种渲染规则。 渲染规则 渲染区域内的盒子(块级盒子)会在里面垂直放置。 盒子的垂直方向的距离由margin决定,而且相邻的盒子之间的margin会重叠。 Block fomatting context区域内的元素从渲染区域最左边开始排列(如果是从左往右的格式化的话,从右往左就是最右边开始排列),即使是浮动也如此。 Block fomatting context区域不会与浮动的元素重叠。 Block fomatting context区域是与外面隔离的,不会影响到外表面的元素,外面也不会影响到里面。 如果触发Block fomatting context渲染规则的话,浮动元素也参与计算渲染区域的高度。 以下是从css2.1规范中文版中截取的一段文字,希望对阅读有帮助: 触发块级格式化上下文的条件 根元素。 浮动的元素(属性不为none)。 绝对定位的元素

z-index下的一些知识

会有一股神秘感。 提交于 2020-01-10 01:43:00
前几天工作的时候遇到一个问题,在IE6下select 这个控件似乎无法用z-index 属性隐藏,接下来就开始了寻找问题的解法,总结了一些z-index 的知识。 z-index 定义和用法 z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。该属性设置一个定位元素沿z 轴的位置,z 轴定义为垂直延伸到显示区的轴。如果为正数,则离用户更近,为负数则表示离用户更远。——W3shcool z-index:auto | number 默认值:auto 堆叠顺序与父元素相等 number:无单位的整数值,可为负数 JavaScript 语法: object.style.zIndex=”1″ 注意: z-index 属性适用于那些被定义了除position:static 外任意属性的元素中。即z-index 仅能在定位元素上奏效(position: absolute | relative | fix)。 stacking context & stack level & z-index 是什么 stacking context 堆叠上下文 每个定位元素都归属于一个stacking context(即堆叠上下文,以下统一用堆叠上下文),最初的堆叠上下文(即根部堆叠上下文)是由根元素产生(一般页面的根元素是body),而其他的堆叠上下文则由定位元素产生

EntityFramework之原始查询及性能优化(六)

元气小坏坏 提交于 2020-01-08 17:59:03
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 在EF中我们可以通过Linq来操作实体类,但是有些时候我们必须通过原始sql语句或者存储过程来进行查询数据库,所以我们可以通过EF Code First来实现,但是SQL语句和存储过程无法进行映射,于是我们只能手动通过上下文中的SqlQuery和ExecuteSqlCommand来完成。 SqlQuery sql语句查询实体 通过DbSet中的SqlQuery方法来写原始sql语句返回 实体实例 ,如果是通过Linq查询返回的那么返回的对象将被上下文(context)所跟踪。 首先给出要操作的Student(学生类),对于其映射这里不再叙述,本节只讲查询。 public class Student { public int ID { get ; set ; } public string Name { get ; set ; } public int Age { get ; set ; } } 如果我们要查询学生表(Student)所有数据应该如何操作呢?下面我们通过代码来进行演示: EntityDbContext ctx = new EntityDbContext(); SqlParameter[] parameter = { }; ctx.Database.SqlQuery <Student>( "

SpringApplication认识

怎甘沉沦 提交于 2020-01-08 13:44:24
SpringApplication SpringApplication Spring Boot 驱动Spring应用上下文的引导类 @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} ), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class} )} ) public @interface SpringBootApplication { ......... } @ComponentScan是Spring FrameWork3.1版本开始引入的 @EnableAutoConfiguration:激活自动装配 @Enable->@Enable开头的(Enable开头的取个名字叫激活模式) @EnableWebMvc @EnableTransactionManagement @EnableAspectJAutoProxy @EnableAsync @SpringBootConfiguration:等价于

2019前端最全面试题

China☆狼群 提交于 2020-01-08 03:57:44
项目地址 HTML问题 HTML5语义化 什么是语义化?就是用合理、正确的标签来展示内容,比如h1~h6定义标题。 好处 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。 方便其他设备解析,如盲人阅读器根据语义渲染网页 有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。 http://www.daqianduan.com/6549.html 为什么最好把 CSS 的 <link> 标签放在 <head></head> 之间?为什么最好把 JS 的 <script> 标签恰好放在 </body> 之前,有例外情况吗? 把 <link> 放在 <head> 中 把 <link> 标签放在 <head></head> 之间是规范要求的内容。此外,这种做法可以让页面逐步呈现,提高了用户体验。将样式表放在文档底部附近,会使许多浏览器(包括 Internet Explorer)不能逐步呈现页面。一些浏览器会阻止渲染,以避免在页面样式发生变化时,重新绘制页面中的元素。这种做法可以防止呈现给用户空白的页面或没有样式的内容。 把 <script> 标签恰好放在 </body> 之前 脚本在下载和执行期间会阻止 HTML 解析。把 <script> 标签放在底部,保证 HTML 首先完成解析,将页面尽早呈现给用户

常规流( Normal flow )

大憨熊 提交于 2020-01-08 03:21:46
格式化上下文( Formatting context ) 格式化上下文指的是初始化元素定义的环境。包含两个要点,一个是元素定义的环境,一个是初始化。 在 CSS 中,元素定义的环境有两种,一种是块格式化上下文( Block formatting context ),另一种是行内格式化上下文( Inline formatting context )。 这两种上下文定义了在 CSS 中元素所处的环境,格式化则表明了在这个环境中,元素处于此环境中应当被初始化,即元素在此环境中应当如何布局等。 以上解释专业点的说法是:在常规流中的框,都属于一个格式化的上下文中。 这个上下文可能是块的,也可能是行内的,但不可能同时是行内的又是块的。块框 1 参与块格式化上下文。行内框 1 参与行内格式化上下文。 注: 关于块框和行内框,请参见 W3C CSS2.1 - 9.2 Controlling box generation 块格式化上下文( Block formatting context ) 触发方式 浮动元素、绝对定位元素,'display' 特性为 "inline-block","table-cell", "table-caption" 的元素,以及 'overflow' 不是 "visible" 的元素,会创建新的块格式化上下文。 浮动元素 绝对定位元素 行内块元素 单元格 表格标题元素

js的执行上下文

ぃ、小莉子 提交于 2020-01-08 01:00:58
js的运行环境有三种: 1. 全局环境 2. 函数内环境 3. eval环境 1. EC Execute Context: 执行上下文。 1)全局执行上下文 js引擎遇到可执行的js代码,默认创建一个全局执行上下文。 2)函数执行上下文 js引擎遇到函数调用,会立即创建一个函数执行上下文。 执行上下文周期: 执行上下文周期分为两个阶段: 创建阶段 创建阶段的任务有三个: 1. 生成变量对象(VO) 2. 建立作用域链Scope 3. 声明this指向 this在创建阶段只是声明,在执行阶段根据函数运行时所在的执行上下文确定this指向的上下文的变量对象VO。 执行阶段 当函数执行内部代码时,进入执行阶段。 2. VO / AO / GO Variable Object: 变量对象,创建阶段的变量对象。 Active Object: 激活后的变量对象,即执行上下文执行阶段的VO。 Global Object: 全局对象,全局执行上下文对应的变量对象(AO/VO)。 每个执行上下文对象都有一个变量对象的属性,它用于存放执行上下文周期的创建阶段的形式参数、函数声明和变量声明。不能被用户直接访问。 在执行上下文周期的执行阶段,VO中对应的属性被赋值,变为AO,AO中内容是变量查找的内容。 变量对象的创建顺序如下: 1. 创建arguments对象,初始化形式参数 function a(x

32. 让对象支持上下文管理

谁都会走 提交于 2020-01-07 20:47:29
例如,实现了一个telnet客户端的类TelnetClient,调用实例的 connect() 、 login() 、 interact() 方法启动客户端与服务器交互,交互完毕后调用 cleanup() 方法关闭已连接的socket,以及将操作历史记录写入文件并关闭。 要求:让TelnetClient的实例支持上下文管理协议,从而替代手动调用 connect() 、 cleanup() 方法。 解决方案: 实现上下文管理协议,即实现类的 __enter__() 、 __exit__() 方法,它们分别在with开始和结束时别调用。 对于 with ... as ... 语句: with所求值的对象必须有一个 __enter__() 方法和一个 __exit__() 方法。 紧跟with后面的语句被求值后,返回对象的 __enter__() 方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的 __exit__() 方法。 方案示例: # yum install -y telnet-server # systemctl start telnet.socket from sys import stdin , stdout import getpass import telnetlib from collections

多线程中的上下文切换

风流意气都作罢 提交于 2020-01-07 15:50:36
相信大家在面试的时候,都经常会被问到这个问题 – “多线程的速度一定比单线程快吗”。这么问也就说明答案是否定的,而这道题的精髓就在于你能不能说出上下文切换这几个字。那什么是上下文切换呢? 上下文切换 定义1: 即使是单核的cpu也能够执行多线程,cpu通过给每个线程分配时间片来实现这个机制。时间片是cpu分配给各个线程的时间,因为时间非常短,所以cpu通过不断地切换线程,让我们感觉多个线程是同时执行的,一般时间片为几十毫秒。   cpu通过时间片分配算法来循环执行任务,当前任务执行一个时间片后切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。   读到这个定义的时候,算是对上下文切换有了点认识,但总觉得有点抽象、不够具体,所以又从《Java多线程编程实战指南》查找了一下概念。 定义2: 多线程环境中,当一个线程的状态由Runnable转换为非Runnable(Blocked、Waiting、Timed_Waiting)时,相应线程的上下文信息(包括cpu的寄存器和程序计数器在某一时间点的内容等)需要被保存,以便相应线程稍后再次进入Runnable状态时能够在之前的执行进度的基础上继续前进。而一个线程从非Runnable状态进入Runnable状态可能涉及恢复之前保存的上下文信息