本篇内容主要讲解“Spring容器在Web项目中的使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring容器在Web项目中的使用方法”吧!
创新互联是一家集网站建设,耀州企业网站建设,耀州品牌网站建设,网站定制,耀州网站建设报价,网络营销,网络优化,耀州网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
Spring容器默认通过Xml配置文件定义bean以及他们之间的依赖关系。Xml文件中通过配置元数据来定义Bean和他对其他Bean的依赖。
DefaultListableBeanFactory的职责是实例化、初始化运用中的各种bean以及管理他们之间的关系。该实现使得Bean之间的关系可以通过Xml管理。
ApplicationContext类是Spring各种资源的集合体,包括消息资源处理(国际化处理)、事件传递、定义的各种Bean对象以及各种运用层的其他(ApplicationContext)。而ApplicationContext通过组合,有个BeanFactory属性,所以ApplicationContext具备了DefaultListableBeanFactory所有操作。
Spring容器的初始化
Servlet通过ContextCloader类初始化ApplicationContext。
(1)初始化ApplicationContext,BeanFactory对象。
ConfigurableWebApplicationContextwac=(ConfigurableWebApplicationContext)
BeanUtils.instantiateClass("XmlWebApplicationContext.class");//默认是XmlWebApplicationContext.class
DefaultListableBeanFactorybeanFactory=newDefaultListableBeanFactory()
XML配置元数据(resource对象表示)
XML配置元数据通常就是指每个XML配置文件,由这些配置元数据共同组成了XML配置文件。为了加载XML配置文件生成ApplicationContext对象,可以将这些XML配置文件的文件路径作为String数组传给ApplicationContext,ApplicationContext会将每个XML配置元数据生成一个Resource对象。同时BeanFactroy会通过调用BeanDefinitionReader对象从多个XML文件读取Bean的定义。
多个Bean定义(BeanDefinition对象表示)
Spring容器将管理多个Bean对象,而这些Bean对象通过xml配置文件中的Bean定义被创建。
在Spring系统中,Bean定义通过BeanDefinition对象表示,该对象封装了相应的Bean定义的内容。每个Bean定义必须包含以下几个内容
◆全限定类名(相对Classpath的全路径文件名)
◆bean行为的定义:静态工厂方法(factory-method)、工厂类(factory-bean)、依赖检查(dependency-check)、自动装配模式(autowire)、初始方法(init-method)、销毁方法(destroy-method)、抽象属性(abstract)、延迟加载(lazy-init)、孤子模式(singleton)等
◆创建bean的构造函数参数和属性,例如设置连接池的连接数以及连接池的连接数大小等。
◆bean之间的依赖关系:parent、依赖属性(depends-on)。
实例化Bean
◆用构造函数来实例化Bean。
只要设置Class属性,且指定类一般都有一个默认的空构造器。这样Spring容器就可以通过放射机制调用指定类的构造函数实例化指定类(相当于Java中的new操作符)。
< BEANID="REGINFOOPERATOR"PARENT="COM.LONGTOP.TEST.REGINFOOPERATOR">< /BEAN>
◆Factory-method静态工厂方法实例化Bean。
必须设置Factory-method属性来指定创建bean的静态工厂方法名,且指定类相应方法必须声明为static。
< BEANID="REGINFOOPERATOR"CLASS="COM.LONGTOP.TEST.REGINFOOPERATOR"FACTORY-METHOD="CREATEINSTANCE">
< /BEAN>
该定义不用指定返回对象的类型,仅仅指定了该类的工厂方法名,此例中createInstance声明为static。
publicclassReginfoOperator{ privateStringname; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicReginfoOperator(){ } publicReginfoOperator(Stringname){ this.name=name; System.out.println("生成ReginfoOperator对象,name="+name); } publicstaticReginfoOperatorcreateInstance(){ returnnewReginfoOperator("hello"); } }
◆Factory-bean工厂对象实例化bean。
用来实例的工厂方法位于另一个已有的bean中,容器将调用这个Bean的工厂方法创建新的指定bean。
bean> bean>
其中reginfoOperator的定义中,class属性必须为空,factory-bean必须定义为包含工厂方法factory-method的bean名称。
packagecom.longtop.test; publicclassOperatorFactory{ publicOperatorFactory(){ } publicReginfoOperatorcreateOperatorInstance(){ returnnewReginfoOperator("factory-bean"); } } publicclassReginfoOperator{ privateStringname; publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicReginfoOperator(Stringname){ this.name=name; System.out.println("生成ReginfoOperator对象,name="+name); } }
到此,相信大家对“Spring容器在Web项目中的使用方法”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!