实例化

Spring知识点整理

会有一股神秘感。 提交于 2019-11-29 18:56:47
1.bean什么时候被实例化 第一:如果你使用BeanFactory作为Spring Bean的工厂类,则所有的bean都是在第一次使用该Bean的时候实例化 第二:如果你使用ApplicationContext作为Spring Bean的工厂类,则又分为以下几种情况: (1):如果bean的scope是singleton的,并且lazy-init为false(默认是false,所以可以不用设置),则ApplicationContext启动的时候就实例化该Bean,并且将实例化的Bean放在一个map结构的缓存中,下次再使用该Bean的时候,直接从这个缓存中取 (2):如果bean的scope是singleton的,并且lazy-init为true,则该Bean的实例化是在第一次使用该Bean的时候进行实例化 (3):如果bean的scope是prototype的,则该Bean的实例化是在第一次使用该Bean的时候进行实例化 2.Bean类型 - singleton: 单例 默认模式,在Spring IOC容器中只存在一个共享的Bean实例。 - prototype:原型模式 每次使用时都会创建一个新的Bean实例。 - request:一次Http请求一个实例 - session:同一个Http Session共享一个Bean实例 - global session

1.2 XmlBeanFactory的实例化

可紊 提交于 2019-11-29 15:57:27
  源代码分析,是一件既痛苦又快乐的事情,看别人写的代码是通过的,但当你能够看明白的时候,相信快乐也会随之而来,为了减少痛苦,更快的带来快乐,    本文以spring框架的XmlBeanFactory为入手点进行分析 首先来打开该类的代码,我们将看到如下代码: 1 public class XmlBeanFactory extends DefaultListableBeanFactory { 2 3 private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader( this ); 4 5 public XmlBeanFactory(Resource resource) throws BeansException { 6 this (resource, null ); 7 } 8 9 public XmlBeanFactory(Resource resource, BeanFactory parentBeanFactory) throws BeansException { 10 super (parentBeanFactory); 11 this .reader.loadBeanDefinitions(resource); 12 } 13 14 } 这个类的代码很简单,一个成员对象加两个构造函数

python 面向对象

此生再无相见时 提交于 2019-11-29 13:56:21
面向对象(类编程) 简介:全称Object Oriented Programing(OOP) ,是一种程序设计思想,面向对象编程 面向对象名词简介 借鉴 菜鸟教程 类(class) :类事抽象的模板,用来描述具有相同属性和方法的对象的集合。定义了集合中每个对象所拥有的方法,对象是类的实例 方法 :类中自定义的函数 类变量 :类变量在整个实例化的对象中是公用的,每个对象都可以调用类变量。类变量定义在类中且函数体之外。类变量通常不作为实例变量使用 数据成员 :类变量或者实例变量用于处理类及实例对象所使用的相关数据 方法重写 :如果从父类继承的方法不能满足子类的需求,可以对齐进行重新,这个过程叫做方法的覆盖,也叫做方法的重写 局部变量 :定义在方法中的变量,只作用与当前实例的类 实例变量 :在类的声明中,属性是用变量来表示的。这种变量也叫做实例变量 继承 :既一个派生类(同有的方法调用另一个类),继承基类(例如Person)的字段和方法。例如:A类和B类都需要调用相同的方法,既创建C类,把相同的方法放到C类,A类和B类继承C类,A类和B类就可以直接调用C类的方法了 实例化 :创建一个类的实例,类的具体对象,例如:人类是一个类的集合,你不知道里边有谁谁谁,但是我如果说马云,你肯定就想到了他的身高,长相,money等等,这个过程也叫做实例化 对象 :也叫做 实例 ,通过类定义的数据结构实例

Spring Bean的生命周期

▼魔方 西西 提交于 2019-11-29 12:06:21
一、整体流程 1、实例化BeanPostFactoryProcessor 2、执行BeanPostFactoryProcessor 的 postProcessorBeanFactory 3、实例化BeanPostProcessor 4、实例化InstantiationAwareBeanPostProcessor 5、执行InstantiationAwareBeanPostProcessor 的 PostProcessorBeforeInstantiation 6、执行bean的构造方法 7、执行InstantiationAwareBeanPostProcessor 的 postProcessorPropertyValues 8、bean 属性注入 9、执行BeanNameAware的setBeanName 10、执行BeanFactoryAware的setBeanFactory 11、执行BeanPostProcessor的PostProcessorBeforInstantiation 12、执行InitializingBean的afterPropertisSet 13、执行<bean> 的init-methord 14执行postBeanProecssor的PostProcessorAfterInitantiation 15、容器初始化完成后,执行调用方法 16

SpringIoC&DI

空扰寡人 提交于 2019-11-29 09:59:44
1. spring概述 1.1 Spring是什么(理解) Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。 提供了展现层 SpringMVC和持久层 Spring JDBCTemplate以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架 1.2 Spring发展历程 (了解) Rod Johnson ( Spring 之父) 2017 年 9 月份发布了 Spring 的最新版本 Spring5.0 通用版(GA) 1.3 Spring的优势(理解) 方便解耦,简化开发 AOP 编程的支持 声明式事务的支持 方便程序的测试 1.4 Spring的体系结构(了解) 1.2 Spring发展历程 (了解) Rod Johnson ( Spring 之父) 2017 年 9 月份发布了 Spring 的最新版本 Spring5.0 通用版(GA) 1.3 Spring的优势(理解) 方便解耦,简化开发 AOP 编程的支持 声明式事务的支持 方便程序的测试 1.4 Spring的体系结构(了解) 1.2

实例化Class类的5种方法

徘徊边缘 提交于 2019-11-29 09:54:46
实例说明   java的数据类型分为两类:基础数据类型和引用数据类型。对于每种类型的对象,java虚拟机会实例化不可变的java.lang.Class对象。它提供了在运行时检查对象属性的方法,这些属性包括它的成员和类型信息。更重要的是Class对象是所有反射API的入口。 关键技术   通常有5种方式获得Class对象,详细说明如下: Object.getClass .class语法 Class.forName() 包装类的TYPE域:每个原始类型和void都有包装类。 以Class为返回值的方法 /** * 演示各种获取Class对象的方法 */ public class ClassTest { @SuppressWarnings("unchecked") public static void main(String[] args) throws ClassNotFoundException { System.out.println("第一种方式:Object.getClass"); Class c1 = new Date().getClass(); System.out.println(c1); System.out.println("第二种方式:.class"); System.out.println(Boolean.class); System.out.println(

Java学习笔记【保持更新】

◇◆丶佛笑我妖孽 提交于 2019-11-29 08:36:57
主要参考资料:https://www.bilibili.com/video/av56034035; https://www.bilibili.com/video/av61604219 本文仅用于学习,如有侵权,请联系我,一定删除 JAVA基础 第一章:基础常识 常用的DOS命令 JAVA语言概述 语言特性 由C和C++继承了许多成分,变量声明、操作符、参数传递和控制流程等完全相同。 纯粹的面向对象 舍弃了指针(以引用取代)、运算符重载、多重继承等 增加了垃圾回收、泛型编程、类型安全的枚举、不定长参数和自动装/拆箱 易学 分布式 健壮 :丢弃指针,自动回收(免去了程序员忘记回收的问题) 开源社区成熟 解释型 原生多线程 JAVA技术平台 SE:俗称核心JAVA JAVA学习流程 Java是一个统称 包含javase 与Javaee(还有一个几乎没人用的javame) 是Sun公司,也就是现在的Oracle(把Sun给收购了)公司的一门面向对象的开源语言。 javase 是java的一部分,也是基础的基础,主要是用来做桌面程序的,就像我们平时下载用的那些软件,也就是楼上说的那些客户端程序。但是用Java做软件的话,前途不明朗。 jsp 是一种动态的页面,运行于服务器(tomcat、 jboss等),里面可以嵌套有html 或javase、Javascript的代码。

Python学习日记(二十二) 初识面向对象

笑着哭i 提交于 2019-11-29 06:40:26
引子 假设我们要开发一个关于飞机大战的游戏,那么游戏的里面就会有两个角色,分别是属于玩家操控的战机和敌方的战机,并且两个战机都有不同的技能或攻击方式,现在我们用自己目前所学的去写出下面的这些代码: def Fighter(name,atk,hp,speed): fighter = { 'name' : name, #战机的名字 'atk' : atk, #战机的攻击力 'hp' : hp, #战机的血量 'speed' : speed #战机的速度 } return fighter def EnemyFighter(name,atk,hp,speed,kind): enemyfighter = { 'name' : name, #敌机的名字 'atk' : atk, #敌机的攻击力 'hp' : hp, #敌机的血量 'speed' : speed, #敌机的速度 'kind' : kind #敌机的种类 } return enemyfighter 我们在写好了这些属性之后就可以生成敌方的战机和玩家的战机: playerFighter1 = Fighter('Player1',200,1500,300) playerFighter2 = Fighter('Player2',150,2000,280) Boss1 = EnemyFighter('lazerBoss',1000

元类

懵懂的女人 提交于 2019-11-29 05:03:55
目录 元类 一、元类的概念 二、class底层原理 三、自定义元类控制类的产生 3.1 自定义元类和类的产生 3.2 自定义元类中加限制语句控制类的产生 四、自定义元类控制类的调用过程 4.1 __call__ 内置方法 五、有了元类之后的属性查找顺序 元类 一、元类的概念 python中一切皆对象,其实类就是一个一个对象。我们之前定义过Person的类也是对象,它就是由一个类实例化得到的,这个类就是元类。 元类:产生类的类 目前的元类type是一个内置的元类,所有的类都是由type实例化得到的 如何找元类 print(type(类名)) # 这样可以打印出类的元类 二、class底层原理 class 类名 就会把类构造出来,实际上是元类实例化产生了类这个对象。类实例化产生对象,一定是:类名() 这个方式。 class 底层就是调用元类type来实例化产生类(对象) 类是由type实例化产生,需要传一堆参数。type() 就会调用类的 __init__ 方法。 元类type()实例化产生类进行传参 :type(object_or_name,bases,dict) 参数中object_or_name:传入的值是类的名字,是个字符串 ​ bases:传入的值是要产生的类的所有父类、基类 ,以元组的形式 ​ dict:是类的名称空间,是一个字典,传入的值也是字典

JavaScript高级

邮差的信 提交于 2019-11-29 05:03:18
1.面向过程与面向对象  1.1面向过程   面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。   面向过程是 实现代码逻辑的 步骤,主要是把重心点放在实现功能上,不太去考虑封装   优点: 效率高,但是维护起来太麻烦     1.2面向对象   面向对象是把事务分解成一个个对象,然后由对象之间分工合作。   主要的重心点,先放在功能模块的划分,然后想着什么功能模块可以去进行复用(可以进行抽取)   优点: 会让我们功能具备模块化开发,一个模块就负责一个功能,后续方便我们的维护    三大特性:继承性、封装性、多态性(抽象性) 2.对象与类   2.1 对象     对象是由属性和方法组成的:是一个无序键值对的集合,指的是一个具体的事物   属性:事物的特征,在对象中用属性来表示(常用名词)   方法:事物的行为,在对象中用方法来表示(常用动词)   创建对象的两种方法     1.字面量创建对象           var ldh = {       name: '刘德华',       age: 18       }       console.log(ldh);     2.构造函数创建对象       function Star(uname,age){         this.uname = name;