作用域

Spring 基础知识学习

对着背影说爱祢 提交于 2019-12-02 18:14:55
摘自: https://www.cnblogs.com/leton/p/11755192.html Spring 基础知识学习 Spring 总结 在Spring框架的发布版本中,共包含了20个不同的模块,可以划分为6类不同的功能。 Spring整体架构图 为了降低Java开发的复杂性,Spring采取了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程; 通过依赖注入和面向接口实现松耦合; 基于切面和惯例进行声明式编程; 通过切面和模板减少样板式代码。 依赖注入 DI 创建应用对象之间协作关系的行为通常称为装配(wiring),这也是依赖注入(DI)的本质。 当描述bean如何进行装配时,Spring具有非常大的灵活性,它提供了三种主要的装配机制: 在XML中进行显式配置。 在Java中进行显式配置。 隐式的bean发现机制和自动装配。 自动化装配bean Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 组件扫描和自动装配组合在一起就能发挥出强大的威力,它们能够将你的显式配置降低到最少。 @Component注解表明该类会作为组件类,并告知Spring要为这个类创建bean

js的基本语法规范

佐手、 提交于 2019-12-02 17:53:49
1.不要在同一行声明多个变量; 2.使用===/!==来比较true/false的返回值; 3.使用字面量替代new Array这种形式; 4.不要使用全局函数; 5.switch语句必须带有default分支; 6.函数不应该有时候有返回值,有时候没返回值; 7.for循环和if语句必须使用大括号; 8.for-in循环中的变量,应使用var关键字声明限定作用域,从而避免作用域的污染。 来源: https://www.cnblogs.com/gzw-23/p/11756603.html

Spring 面试题

久未见 提交于 2019-12-02 17:06:14
1. 有哪些不同类型的IoC(依赖注入)方式 ? 解释说明下 构造器依赖注入 构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。 Setter方法注入 Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。 2. 最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao工作原理是什么? Dao接口里的方法,参数不同时,方法能重载吗?   Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MappedStatement,举例:com.mybatis3.mappers.StudentDao.findStudentById,可以唯一找到namespace为com.mybatis3.mappers.StudentDao下面id = findStudentById的MappedStatement。在Mybatis中,每一个<select>、

Spring域属性和代理模式

孤者浪人 提交于 2019-12-02 16:14:15
Spring域属性和代理模式 一、域属性 好处:大幅度减少Spring配置 坏处:依赖不能明确管理,可能会有多个bean同时符合注入规则。没有清晰的依赖关系。 1,byName 根据属性名自动装配。此选项将检查容器并根据名字查找 与属性完全一致的bean,并将其与属性自动装配。 2,byType 如果容器中存在一个与指定属性类型相同的bean,那么将与 该属性自动装配;如果存在多个该类型bean,那么抛出异常, 并指出不能使用byType方式进行自动装配;如果没有找 到相匹配的bean,则什么事都不发生,也可以通过设置 二、Bean的生命周期 在IoC容器启动之后,并不会马上就实例化相应的bean,此时容器仅仅拥有所有对象的BeanDefinition(BeanDefinition:是容器依赖某些工具加载的XML配置信息进行解析和分析, 并将分析后的信息编组为相应的BeanDefinition)。只有当getBean()调用时才是有可能触发Bean实例化阶段的活动 Bean一生的过程 ####可以简述为以下九步 实例化bean对象(通过构造方法或者工厂方法) 设置对象属性(setter等)(依赖注入) 如果Bean实现了BeanNameAware接口,工厂调用Bean的setBeanName()方法传递Bean的ID。(和下面的一条均属于检查Aware接口)

面试题

China☆狼群 提交于 2019-12-02 16:13:39
1. 有哪些不同类型的IoC(依赖注入)方式 ? 解释说明下 构造器依赖注入 构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。 Setter方法注入 Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。 2. 最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao工作原理是什么? Dao接口里的方法,参数不同时,方法能重载吗?   Dao接口,就是人们常说的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatement的id值,接口方法内的参数,就是传递给sql的参数。Mapper接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符串作为key值,可唯一定位一个MappedStatement,举例:com.mybatis3.mappers.StudentDao.findStudentById,可以唯一找到namespace为com.mybatis3.mappers.StudentDao下面id = findStudentById的MappedStatement。在Mybatis中,每一个<select>、

SpringBean生命周期及作用域

雨燕双飞 提交于 2019-12-02 15:43:49
bean作用域     在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象。在BeanDefinition对象中有scope 属性,就是它控制着bean的作用域。   Spring框架支持5种作用域,有三种作用域是当开发者使用基于web的ApplicationContext的时候才生效的。下面就是Spring直接支持的作用域了,当然开发者也可以自己定制作用域。       作用域              描述      单例(singleton)        (默认)每一个Spring IOC容器都拥有唯一的一个实例对象   原型(prototype)         一个Bean定义,任意多个对象   请求(request)         一个HTTP请求会产生一个Bean对象,也就是说,每一个HTTP   会话(session)         限定一个Bean的作用域为HTTPsession的生命周期。同样,只有基于文本的Spring的Spring ApplicationContext才能使用   全局会话(global session)   限定一个Bean的作用域为全局HTTPSession的生命周期。通常用于门户网站的场景,同样,只有基本web的Spring

Python函数作用域和匿名函数

老子叫甜甜 提交于 2019-12-02 15:43:00
匿名函数的定义 全局变量和局部变量的概念 global(全局变量)和 nonlocal(局部变量) 闭包、递归、回调 匿名函数 匿名函数 lambda 语法规则:lambda 参数 : 表达式 函数作用域 函数内部 函数内部的变量,作用域只在函数内部,函数内部不可以直接更改函数外部的变量 global(全局变量) 函数内部如果需要改变全局变量,就需要使用global修饰变量 nonlocal(局部变量) 在函数嵌套函数的情况下,同样也有函数作用域的问题,但是python3中提供了方便,只需要使用nonlocal就可以在里层函数内部修改外部函数变量 闭包 函数里面嵌套函数,外层函数返回里层函数,这种情况称之为闭包 闭包是概念,不是某种函数类型,和递归的概念类似,就是种特殊的函数调用 闭包可以得到外层函数的局部变量,是函数内部和函数外部沟通的桥梁 递归和回调函数 递归 函数可以自身调用自身,但是使用时类似于条件循环一样,要有递归的终止条件 使用递归时,可以让代码更加简洁 但递归会占用比较多的内存,当递归次数比较多时,性能就会降低,不建议多使用递归 回调 自身是一个函数,只是被传入到另一个函数当中,供其调用 回调函数不一定会被调用,是否调用由被传入函数的内部逻辑决定 来源: https://www.cnblogs.com/jiyu-hlzy/p/11752258.html

spring bean生命周期和作用域

被刻印的时光 ゝ 提交于 2019-12-02 15:41:44
1. spring bean 生命周期和作用域 在前面博客中提到容器启动获得 BeanDefinition 对象中有一个 scope 属性。该属性控制着 bean 对象的作用域。本章节介绍 Bean 的作用域及生命周期,了解 bean 是怎么来的又怎么没的。 一、 Bean 的作用域 在 Bean 容器启动会读取 bean 的 xml 配置文件,然后将 xml 中每个 bean 元素分别转换成 BeanDefinition 对象。在 BeanDefinition 对象中有 scope 属性,就是它控制着 bean 的作用域。 Spring 框架支持 5 种作用域,有三种作用域是当开发者使用基于 web 的 ApplicationContext 的时候才生效的。下面就是 Spring 直接支持的作用域了,当然开发者也可以自己定制作用域。 一、 Bean 的生命周期 前面章节介绍了 bean 容器以及 bean 的配置与注入,本章节学习 bean 的生命周期,了解 bean 是怎么来的又是怎么没的。 ApplicationContext 容器中, Bean 的生命周期流程如上图所示,流程大致如下: 1. 首先容器启动后,会对 scope 为 singleton 且非懒加载的 bean 进行实例化, 2. 按照 Bean 定义信息配置信息,注入所有的属性, 3. 如果 Bean 实现了

Spring Bean的生命周期和作用域

霸气de小男生 提交于 2019-12-02 15:37:16
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

重学JavaScript之匿名函数

梦想的初衷 提交于 2019-12-02 14:58:25
1. 什么是匿名函数? 匿名函数就是没有名字的函数,有时候也称为《 拉姆达函数 》。匿名函数是一种强大的令人难以置信的工具。如下: function a(a1, a2, a3) { // 函数体 } ==其他函数表达式== var a = function(a1, a2, a3) { // 函数体 } 以上两个例子在逻辑上等价,其主要的区别是: 前者会在代码执行前被加载到作用域中,而后者则是在代码执行到那一行的时候才会有定义。另一个重要的区别就是: 函数声明会给函数一个指定的名字 ,而函数表达式则是: 创建一个匿名函数,然后将这个匿名函数赋给一个变量。 function(a1, a2, a3) { // 函数体 } 上面例子也是完全可以的,但是却无法调用这个函数,因为没有指向这个函数的指针,但是可以将这个函数作为参数传入另外一个函数,或者从一个函数中返回另一个函数时就可以使用这种形式来定义匿名函数。 2. 递归 递归函数是在一个函数通过名字调用自身的情况下构成的 function f(num) { if (num <= 1) { retrun 1 } else { return num * f(num - 1) } } 以上,这是一个经典的递归阶乘函数,表面上没有任何问题,但是却会被以下代码导致出错: var a = f f = null console.log(a(4) //