实例化

Spring实例化bean的三种方法

≡放荡痞女 提交于 2020-02-12 01:22:26
1.用构造器来实例化 [html] view plain copy print ? < bean id= "hello2" class= "com.hsit.hello.impl.ENhello" /> 2.使用静态工厂方法实例化 要写一个bean,bean中定义一个静态方法,生成bean,配置 factory-method 指定 静态方法 ,运行时容器就会自动调用静态方法生成实例 bean [java] view plain copy print ? package com.hsit.hello.impl; import com.hsit.hello.IHello; public class CHhello implements IHello { private String msg; public void sayHello() { System.out.println( "中文" + msg); } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } @Override public String toString() { // TODO Auto-generated method stub return "Chinese"; } public

Spring基础

大憨熊 提交于 2020-02-12 00:23:38
一,什么是Spring? 为什么要用Spring? Spring的本质就是管理软件中的对象,如何创建对象和维护对象之间的关系 1.Spring是一个开源的轻量级的应用开发框架,其目的是简化企业级的应用程序开发,减少入侵; 2.Spring 提供的IOC和AOP应用,可以将组件的耦合度降至最低,届解耦,便于系统日后的维护和升级; 二,Spring容器的简介: 1)在Spring中,任何的java类和JavaBean都被当成 Bean处理,这些Bean通过容器管理和应用。 2)Spring容器实现了IOC和AOP机制,这些机制可以简化Bean对象创建和Bean对象之间的解耦; 3)Spring 容器有BeanFactory和ApplicationContext两种类型 什么是JavaBean:一种简单规范的Java对象 何时使用Spring? 当需要管理JavaBean对象时候就可以使用,Spring是最简洁的对象管理方案之一 。 三,Spring容器的实例化,如何创建对象 ApplicationContext继承自BeanFactory接口,拥有更多的企业级方法,推荐使用该类型,实例化方法如下: // 加载文件系统中的配置文件实例化 String conf = "c:\applicationContext.xml"; ApplicationContext ac = new

java学习笔记之反射—Class类实例化和对象的反射实例化

两盒软妹~` 提交于 2020-02-11 20:19:18
反射之中所有的核心操作都是通过Class类对象展开的,可以说Class类是反射操作的根源所在,但是这个类的实例化对象, 可以采用三种方式完成。 java.lang.Class类的定义: public final class Class<T> extends Object implements Serializable, GenericDeclaration, Type, AnnotatedElement, TypeDescriptor.OfField<Class<?>>, Constable 1.Object类支持: Object类可以根据实例化对象获取Class对象:public final Class<?> getClass() 这种方式有一个缺点:如果现在只是想获得Class类对象,则必须产生指定类对象后才可以获得,会造成一个无用的对象产生 代码: Person per = new Person();//已经存在有指定类的实例化对象 Class<? extends Person> cls = per.getClass(); 2.JVM直接支持: 采用“类.class”的形式实例化 代码: Class<? extends Person> cls2 = Person.class; 3.Class类支持: 在Class类里面提供有一个static方法: 加载类:public

Spring 实例化bean的三种方式

半城伤御伤魂 提交于 2020-02-11 18:00:02
第一种方法:直接配置Bean Xml代码 < bena id= "所需要实例化的一个实例名称" class= "包名.类名" /> 例如: 配置文件中的bean.XML代码: Xml代码 < bean id= "userA" class= "com.test.User" /> Java代码 package com.test public class User{ public void test(){ System.out.println( "HelloWorld"); } } 第二种方法:简单工厂创建Bean Xml代码 < bena id= "所需要实例化的一个实例名称" class= "包名.类名" factory-mathod= "该类创建实例的方法名" /> 通过使用简单工厂的 静态方法 进行创建: 例如: Xml代码 < bean id= "userA" class= "com.test.MyFactory" factory-mathod= "getInstance" /> Java代码 package com.test public class MyFactory{ public static User getInstance(){ return new User(); } } 第三种方法:抽象工厂方法创建Bean Xml代码 < bena id=

Spring 第一天课程

感情迁移 提交于 2020-02-11 17:59:02
一、 面试题部分 1. 什么是 IOC?什么是DI?他们有什么区别? 答案: IOC ,即控制反转。是指将原来程序中自己创建实现类对象的控制权反转到 IOC 容器中。 IOC 的别名:依赖注入 (DI) , DI 是 IOC 的实现方式:注入。 依赖注入 (DI) 和控制反转 (IOC) 是从不同的角度的描述的同一件事情,就是指通过引入 IOC 容器, 利用依赖关系注入的方式,实现对象之间的解耦。 IoC 控制反转,指将对象的创建权, 反转到 Spring 容器 , DI 依赖注入,指 Spring 创建对象的过程中,将对象依赖属性通过配置进行注入 2. Spring什么时候实例化bean? 答案: Spring 什么时候实例化 bean ,首先要分 2 种情况 第一:如果你使用 BeanFactory 作为 Spring Bean 的工厂类,则所 有的 bean 都是在第一次使用该 Bean 的时候实例化 第二:如果你使用 ApplicationContext 作为 Spring Bean 的工厂类,则又分为以下几种情况: ( 1 ):如果 bean 的 scope 是 singleton 的,并且 lazy-init 为 false (默认是 false ,所以可以不用设置),则 ApplicationContext 启动的时候就实例化该 Bean ,并且将实例化的 Bean

面向对象

夙愿已清 提交于 2020-02-11 16:32:39
一、引子 人狗大战 def person(name,sex,agger,hp): person_dic = {"name":name,"sex":sex,"agger":agger,"hp":hp} def attack(dog): #dog("xiaogei","shachai",260,1000000) # dog["hp"] -= person_dic["agger"] print("%s打了%s,%s掉了%s血" % (person_dic["name"],dog["name"],dog["name"],person_dic["agger"])) person_dic["attack"] = attack return person_dic def dog(name,kind,agger,hp): dog_dic = {"name":name,"kind":kind,"agger":agger,"hp":hp} def bite(person): #person_dic person["hp"] = person["hp"] - dog_dic["agger"] print("%s咬了%s,%s掉了%s血" % (dog_dic["name"], person["name"], person["name"],dog_dic["agger"])) dog_dic["bite"

WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常

心不动则不痛 提交于 2020-02-11 13:48:57
原文: WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常 WPF中实例化Com组件,调用组件的方法时报System.Windows.Forms.AxHost+InvalidActiveXStateException的异常 在wpf中封装Com组件时,调用组件的方法时抛出异常System.Windows.Forms.AxHost+InvalidActiveXStateException的异常。 通过网上查询发现,除了实例化com组件,还要将该对象进行初始化。 添加如下代码后 System.Windows.Controls.Grid CTSGrid = new System.Windows.Controls.Grid(); AxAutoTest _autoTestClass = new AxAutoTest(); //[WPF承载windows组件必须用WindowsFormsHost] System.Windows.Forms.Integration.WindowsFormsHost host = null; host = new System.Windows.Forms.Integration.WindowsFormsHost(); //

单例模式 Singleton

坚强是说给别人听的谎言 提交于 2020-02-11 12:27:47
单例模式 简介 单例模式保证内存中对象只存在一个实例 单例模式分为 饿汉式 和 懒汉式 饿汉式 特点 当类被加载到内存时,就会实例化对象,保证JVM线程安全 缺点:不管使不使用,类加载时就会实例化 懒汉式 特点 按需加载,类尽管被加载到内存中,但不会立刻被实例化 第一次使用时会实例化,以后便存在内存中 缺点:多线程访问时,可能会创建多个实例 8种单例模式 第一种 饿汉式 /** * 单例模式:保证内存中只有一个实例 * 饿汉式 * 类加载到内存后,就实例化一个单例,JVM保证线程安全 * 简单使用,推荐使用 * 唯一缺点:不管使不使用,类加载时就完成实例化 */ public class Mgr1 { private static final Mgr1 INSTANCE = new Mgr1 ( ) ; /** * 阻止外部创建实例对象 */ private Mgr1 ( ) { } public static Mgr1 getInstance ( ) { return INSTANCE ; } } 第二种 饿汉式:在静态块中实例化对象 /** * 单例模式:保证内存中只有一个实例 */ public class Mgr2 { private static final Mgr2 INSTANCE ; static { INSTANCE = new Mgr2 ( ) ; } /**

单例模式

帅比萌擦擦* 提交于 2020-02-10 05:33:15
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 介绍 意图: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决: 一个全局使用的类频繁地创建与销毁。 何时使用: 当您想控制实例数目,节省系统资源的时候。 如何解决: 判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码: 构造函数是私有的。 应用实例: 1、一个党只能有一个主席。 2、Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 3、一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 1、在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 2、避免对资源的多重占用(比如写文件操作)。 缺点: 没有接口

设计模式 - 单例模式

萝らか妹 提交于 2020-02-08 05:01:10
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 注意: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 介绍 意图:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 主要解决:一个全局使用的类频繁地创建与销毁。 何时使用:当您想控制实例数目,节省系统资源的时候。 如何解决:判断系统是否已经有这个单例,如果有则返回,如果没有则创建。 关键代码:构造函数是私有的。 应用实例: 一个班级只有一个班主任。 Windows 是多进程多线程的,在操作一个文件的时候,就不可避免地出现多个进程或线程同时操作一个文件的现象,所以所有文件的处理必须通过唯一的实例来进行。 一些设备管理器常常设计为单例模式,比如一个电脑有两台打印机,在输出的时候就要处理不能两台打印机打印同一个文件。 优点: 在内存里只有一个实例,减少了内存的开销,尤其是频繁的创建和销毁实例(比如管理学院首页页面缓存)。 避免对资源的多重占用(比如写文件操作)。 缺点:没有接口,不能继承,与单一职责原则冲突