实例化

spring-mvc源码阅读笔记

爱⌒轻易说出口 提交于 2020-02-29 19:37:13
简要的做一些spring-mvc部分的源码学习笔记 Spring-mvc做的工作主要是俩大方面吧:一个是初始化一个ioc容器,一个是mvc部分的控制和视图模块的实现。 先说下ioc容器的初始化部分:ioc的初始化主要在俩个地方,一个是contextLoadListener里,另一个在DispatcherServlet里。 contextLoadListener: 在contextLoadListener里初始化的ioc容器是整个web项目里的一个父容器。整个初始化的过程也比较简单,首先是实例化一个context,具体是哪个context类呢,我们可以在web.xml的配置里指定,不过我们一般也不会指定这个参数,所以就直接实例化了一个默认的context-XmlWebApplicationContext。实例化以后,就开始加载我们配置文件里的那些bean。配置文件的位置我们一般都在web.xml里进行了配置。具体的加载的过程都在refresh()方法里。 这refresh方法里我们一般比较关心的是不同类型的bean的注册的过程还有实例化的过程。具体的注册过程就不再说了。 在注册完成后,会首先实例化一些ioc关心的bean,比如各种processor,还有一些特定类型的bean,具体可以细看下代码。然后会把实例化后的一些在ioc容器里有特定功能的bean进行注册

Spring Framework 组件注册 之 FactoryBean

陌路散爱 提交于 2020-02-29 06:41:25
Spring Framework 组件注册 之 FactoryBean 前言 前两篇文章介绍了如何使用 @Component , @Import 注解来向spring容器中注册组件(javaBean),本文将介绍通过 FactoryBean 接口继续向spring容器中注册组件。可能第一印象是spring中 BeanFactory 接口,但是这里确实说的是 FactoryBean 。 推荐阅读 Spring Framework 组件注册 之 @Import Spring Framework 组件注册 之 @Component FactoryBean 与 BeanFactory 根据接口名称,我们也可以简单看出两者的区别 FactoryBean:它是spring中的一个Bean,只不过它是一个特殊的Bean(工厂Bean),我们可以通过它来自定义生产需要的普通JavaBean BeanFactory:它是spring的Bean工厂,是spring最为重要的接口之一,spring通过此接口获取,管理容器中的各个Bean 接下来将进入本文正题,如何通过 FactoryBean 接口向spring容器中注册组件 FactoryBean简单使用 正如前面说的,FactoryBean也是spring中的一个Bean,但是它又是一个特殊的Bean,它的存在是为了生产其他的JavaBean

spring beanFactory

半腔热情 提交于 2020-02-29 03:13:41
1.什么叫beanfactory? spring使用BeanFactory来实例化、配置和管理对象,但是它只是一个接口,里面有一个getBean()方法。我们一般都不直接用BeanFactory,而是用它的实现类ApplicationContext,这个类会自动解析我们配置的applicationContext.xml,然后根据我们配置的bean来new对象,将new好的对象放进一个Map中,键就是我们bean的id,值就是new的对象。 原文参考http://www.cnblogs.com/liuling/archive/2013/04/14/BeanFactory.html 2.什么叫ApplicationContext? 答:实用的Bean工厂ApplicationContext,继承BeanFactory接口 在ApplicationContext接口的众多实现类中,有3个是我们经常用到的(见表1-1),并且使用这3个实现类也基本能满足我们Java EE应用开发中的绝大部分需求。 表1-1 ApplicationContext接口的常用实现类介绍 类 名 称 功 能 描 述 ClassPathXmlApplicationContext 从类路径ClassPath中寻找指定的XML配置文件,找到并装载 完成ApplicationContext的实例化工作。例如: /

spring学习——Ioc基础三(Ioc配置使用)

纵饮孤独 提交于 2020-02-28 22:51:13
一、XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean1”class=””></bean> <bean id=”bean2”class=””></bean> <bean name=”bean2”class=””></bean> <alias alias="bean3" name="bean2"/> <import resource=”resource2.xml”/> </beans> 1、<bean>标签主要用来进行Bean定义; 2、alias用于定义Bean别名的; 3、import用于导入其他配置文件的Bean定义,这是为了加载多个配置文件,当然也可以把这些配置文件构造为一个数组(new String[] {“config1.xml”, config2.xml})传给ApplicationContext实现进行加载多个配置文件,那一个更适合由用户决定;这两种方式都是通过调用Bean Definition Reader 读取Bean定义,内部实现没有任何区别。<import>标签可以放在<beans>下的任何位置,没有顺序关系。 二、Bean的配置 Spring IoC容器目的就是管理Bean,这些Bean将根据配置文件中的Bean定义进行创建

python 面向对象

二次信任 提交于 2020-02-28 10:22:52
面向对象变成介绍 面向过程编程 核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西。主要应用在一旦完成很少修改的地方,如linux内核、git、apache服务器等 优点:极大的降低了程序的设计复杂度 缺点:可扩展性差,改动一个地方很可能要改多个地方,牵一发而动全身 面向对象编程: 不是编程的全部,只是用来解决软件可扩展性的 核心是对象(上帝式思维),对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向对象就是把计算机程序作为一个对象集合,每隔对象都能接收其他对象传来的消息,计算机程序的执行就是就是一系列消息在各个对象之间传递。主要应用在需求经常变化的软件,一般需求的变化都集中在用户层,互联网应用,企业内部软件,游戏等 优点:解决了程序的可扩展性差的问题,对某一个对象修改会立刻反映到整个程序体系,如lol对一个英雄属性的修改(万年削弱从未被加强) 缺点:可控性差,无法预测程序执行结果,如lol每局游戏的结果 类和对象 对象的概念 对象也叫做实例,是通过类产生的,对象就是数据属性和方法属性的结合体,比如lol中的英雄,一个英雄就是一个对象,具备生命值、蓝条攻击力等数据属性,又具备qwer四个技能属于方法属性。 类的概念 类包含了一组对象的相同属性部分,还是说lol中的英雄,所有的英雄都有名字、标签

单例模式

对着背影说爱祢 提交于 2020-02-28 07:06:38
前言 本篇是设计模式学习笔记的其中一篇文章,如对其他模式有兴趣,可从该地址查找 设计模式学习笔记汇总地址 1. 使用单例模式的原因 以Windows任务管理器为例,在Windows系统中,任务管理器是唯一的,多次打开任务管理器,始终只能弹出一个唯一的任务管理器. 这么做的理由有两个: 节约资源 避免多个实例数据不一致问题 1.1 节约资源 如果能弹出多个窗口,且这些窗口的内容完全一致,全部是重复对象, 这势必会浪费系统资源 ,任务管理器需要获取系统运行时的诸多信息,这些信息的获取需要消耗一定的系统资源,包括CPU资源及内存资源等,浪费是可耻的,而且根本没有必要显示多个内容完全相同的窗口 1.2 避免多个实例数据不一致问题 如果弹出的多个窗口内容不一致,问题就更加严重了,这意味着在某一瞬间系统资源使用情况和进程、服务等信息存在多个状态,例如任务管理器窗口A显示“CPU使用率”为10%,窗口B显示“CPU使用率”为15%,到底哪个才是真实的呢?这纯属“调戏”用户,给用户带来误解,更不可取. 为了确保对象的唯一性,我们可以通过单例模式来实现,这就是单例模式的动机所在 2. 单例模式概述 通过模拟Windows任务管理器,创建TaskManager类来理解单例模式 2.1 TaskManager /** * @author liuboren * @Title: 任务管理器类 *

Java内部类

孤者浪人 提交于 2020-02-27 21:41:12
从Java1.1开始引入了内部类以来,它就引起了人们的激烈争论。其实任何优秀的语言特性用得不好就是滥用,内部类用得不好就会导致代码像迷宫一样,导致出现毫无重用的综合征。 1、内部类分为成员内部类、静态嵌套类、方法内部类、匿名内部类。 几种内部类的共性: A、内部类仍然是一个独立的类,在编译之后会内部类会被编译成独立的.class文件,但是前面冠以外部类的类命和$符号。 B、内部类不能用普通的方式访问。内部类是外部类的一个成员,因此内部类可以自由地访问外部类的成员变量,无论是否是private的。 2、成员内部类:形式如下 class Outer { class Inner{} } 编译上述代码会产生两个文件:Outer.class和Outer$Inner.class。 成员内部类内不允许有任何静态声明!下面代码不能通过编译。 class Inner{ static int a = 10; } 能够访问成员内部类的唯一途径就是通过外部类的对象! A、从外部类的非静态方法中实例化内部类对象。 class Outer { private int i = 10; public void makeInner(){ Inner in = new Inner(); in.seeOuter(); } class Inner{ public void seeOuter(){ System.out

ref属性--react

半世苍凉 提交于 2020-02-27 17:15:17
原生JS中有:document.getElementById("idName");来拿到需要的元素 但是在react中,显示这是不对的,不过有一个 属性 ,叫 ref ,是用来拿到某个元素的 ref属性是用在render(){};里面的某个标签里面的,比如:<div ref={ item => this. audioNode = item} ></div> 【这是react里面的写法】 ref作用的对象是当前的元素,比如上一行就是<div></div>对应得元素 附:每一个组件类的 实例化对象 是这个组件类对应的标签,但不是html标签,例如: class HelloWorld extends Component {   render(){     return(        <HelloWorld />     );   } } 来源: https://www.cnblogs.com/songmengyao/p/7366454.html

day1 对java的认识

杀马特。学长 韩版系。学妹 提交于 2020-02-27 13:19:16
对java的认识 1.java是一门跨平台的语言,由jvm进行预编译,转换成类似伪代码一样的东西,最后再转换成机器语言。 2.程序是由数据结构和算法构成,其他 所有的工具类,方法 都是 为数据结构或者算法 服务的。 3.面向对象思想是当今编程界的潮流。每一个类都有自己的属性和成员方法,然后不同类通过互相 实例化对象,调用方法,传参进行配合。 4.数据结构应该单独进行封装,算法通过实例化类对象,调用对象的方法进行实现。 来源: https://www.cnblogs.com/wangpeng111/p/12371598.html

java基础学习3---面向对象

妖精的绣舞 提交于 2020-02-27 10:59:35
1、面向对象 对象:用来描述客观事物的一个实体,由一组属性和方法构成。 面向对象: 人关注对象 人关注事物信息 类 确定对象将会拥有的属性和方法 类的特点: 类是对象的类型 具有相同属性和方法的一组对象的集合。 类和对象的关系 类是抽象的概念 对象是一个能看到的具体实体 类是对象的类型 对象是特定类型的数据 具体开发中,先定义类再实例化对象。 对象实例化 Cat cat = new Cat ( ) ; 实例化过程分两部分: 声明对象 Cat cat 实例化对象 new Cat() 注意: 1.每次new对象都会产生新的实例化对象。 2.多个对象可以指向同一块实例化空间。 3.对象必须被实例化之后才能使用。 4.对象间的引用,实际上传递的是堆内存的引用。 构造方法 1、构造方法与类同名,没有返回值。 2、只能在对象实例化的时候调用。 3、没有指定构造方法时,系统会自动添加无参的构造方法。 4、当指定构造方法时,无论是有参、无参的构造方法,都不会自动添加无参的构造方法。 5、一个类中可以有多个构造方法。 单一职责原则 单一职责原则(SRP:single responsibility principle),又称单一功能原则。 面向对象的五个基本原则之一(SOLID:SRP、OCP开放封闭原则、LSP里氏替换原则、DIP依赖倒置原则、ISP接口分离原则)。