`

spring配置文件中bean元素的各个属性

 
阅读更多

bean元素的idname属性的区别

<bean>元素的id属性 name属性的区别

 

1. 一般情况下,配置一个Bean时,通过指定一个id属性作为Bean的名称.

2.  id 属性在IoC容器中必须是唯一的

3.  id 的命名要满足XMLID属性命名规范:

         必须以字母开始,可以使用字母、数字、连字符、下划线、句话、冒号

 

4.  使用name属性,就可以使用很多特殊字符,早期在struts1 spring整合

         <bean name="/login" class="....LoginAction" />  name中含有/ ,使用id会报错

5.  如果Bean的名称中含有特殊字符,就需要使用name属性

例如:<bean name="#person" class="cn.itcast.bean.Person"/>

6.  因为name属性可以相同,所以后出现Bean会覆盖之前出现的同名的Bean

         xml的解析是从上到下的,所以先配置的bean会被加载到内存中,那么后配置的具有相同namebean就会覆盖前面的.

        

7.  如果bean元素没有id只有name name 属性值可以作为id 使用

 

===============================================================================

bean元素scope属性配置Bean的作用域

<bean>元素scope属性,spring规范中scope属性有五个取值:

1.    scope="singleton" 单例,在Spring IoC容器中仅存在一个Bean实例(默认的scope

         默认情况下:托管给spring默认在spring容器中只有一个Bean实例对象.

 

2.      scope="prototype" 多例,每次从容器中调用Bean时,都返回一个新的实例,即每次调用getBean(),相当于执行new XxxBean()

 

3.      scope="request" 用于web开发,该作用域仅适用于WebApplicationContext环境.

每次HTTP请求都会创建一个新的Bean,Bean放入request范围,request.setAttribute("xxx"),在同一个request 获得同一个Bean

 

4.      scope="session" 用于web开发, 该作用域仅适用于WebApplicationContext环境.

同一个HTTP Session 共享一个Bean,不同Session使用不同Bean,Bean 放入Session范围

 

5.      scope="globalSession"该作用域仅适用于WebApplicationContext环境.

一般用于Porlet应用环境 , 分布式系统存在全局session概念,如果不是porlet环境,globalSession 等同于Session  .   PorletServlet的一个升级,Porlet主要用于分布式系统.

        

在开发中主要使用 scope="singleton" scope="prototype"

===============================================================================

 

 

bean元素的init-methoddestory-method属性

这两个属性只是bean生命周期中一部分内容,完成的Bean生命周期详见:

本文档中Bean的生命周期

 

Spring初始化bean或销毁bean时,有时需要作一些处理工作,

因此spring可以在创建和拆卸bean的时候调用bean的两个生命

周期方法。

       <bean id=“foo” class=“...Foo”

            init-method=“setup”

            destory-method=“teardown”/>

1.      init-method=“setup”用于指定:bean被载入到容器的时候调用setup方法.

         类似于Servletinit()方法.

2.      destory-method=“teardown”bean从容器中删除的时候调用teardown.

         类似于Serlvetdestory方法

         注意destory-method属性只在scope= singleton有效

3.  初始化方法和销毁方法一般都是无返回值,无参数的方法.

4.      销毁方法必须关闭Spring容器才会被调用.

         ClassPathXmlApplicationContext applicationContext = new

                                                                 ClassPathXmlApplicationContext("applicationContext.xml");

         applicationContext.close();

 

5.web容器中会自动调用,但是main函数或测试用例需要手动调用

分享到:
评论

相关推荐

    Spring面试题

    有了 Spring,只要用 JavaBean 属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。} Spring 框架是一个分层架构,由 7 个定义良好的模块组成。Spring 模块构建在核心...

    DWR.xml配置文件说明书(含源码)

    spring beanName 从配置文件中读取的bean的名称 “scope参数允许你配置creator的生命周期,共有以下几个选项:application,session,request,page.这些参数对于用过jsp或servlet的开发人员并不陌生. 3.1 Uing static ...

    java面试宝典

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    JAVA程序开发大全---上半部分

    本书系统全面地介绍了Java中的各项主流技术,以及基于这些技术的商业化应用程序的开发技巧,在讲解过程中以目前最为流行的开发工具MyEclipse为载体,全面系统地介绍了如何在MyEclipse中开发基于Struts、Hibernate、...

    千方百计笔试题大全

    94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、...

    Java面试宝典2010版

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 19、Jdo是什么? 20、什么是spring的IOC AOP 21、STRUTS的工作流程! 22、spring 与EJB的区别!! 八. 软件工程与设计...

    最新Java面试宝典pdf版

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    java面试题

    答:不一定,如果在配置中你也使用了fetch属性的话此时lazy就会失效。 Hibernate数据库标识与主键之间的认识? 答:标识是为了方便和简介映射文件,主键是为了让数据不会重复。 为什么每次请求都要创建一个Action...

    Java面试笔试资料大全

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    JAVA面试宝典2010

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    Java面试宝典-经典

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    java面试题大全(2012版)

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    Java面试宝典2012版

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 ...

    java面试宝典2012

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 137 19、Jdo是什么? 137 20、什么是spring的IOC AOP 137 21、STRUTS的工作流程! 137 22、spring 与EJB的区别!! 137 八. ...

    Java面试宝典2012新版

    给一个 Bean 的 message 属性, 字符串类型, 注入值为 "Hello" 的 XML 配置文件该怎么写? 125 19、Jdo是什么? 125 20、什么是spring的IOC AOP 126 21、STRUTS的工作流程! 126 22、spring 与EJB的区别!! 126 八. ...

    cms后台管理

    找到jeecms-servlet-front-action.xml,在此配置文件中有 &lt;bean id="dynamicAct" class="com.jeecms.cms.action.front.DynamicPageAct"/&gt; 可以找到类DynamicPageAct,此类是首页模板。 在类DynamicPageAct中有 ...

    java基础题 很全面

    18. 在weblogic中发布ejb需涉及到哪些配置文件 22 19. 如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 22 20. 如何查看在weblogic中已经发布的EJB? 22 21. 说说在weblogic中开发消息...

Global site tag (gtag.js) - Google Analytics