重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章主要为大家展示了“Spring怎么在xml文件中配置Bean”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Spring怎么在xml文件中配置Bean”这篇文章吧。
成都创新互联是专业的五台网站建设公司,五台接单;提供成都网站建设、网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行五台网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
Spring容器是一个大工厂,负责创建、管理所有的Bean。
Spring容器支持2种格式的配置文件:xml文件、properties文件,最常用的是xml文件。
Bean在xml文件中的配置
根元素,可包含多个
一个
name指定对象的名称,class指定该Bean的类,scope指定该对象的作用域。class属性是必须的,其它可选。
对象的名称可通过name或id指定,id只能指定一个名称,name可指定一个或多个名称,用逗号或分号隔开即可。示例:name="grade,score"。未指定id或name时,默认取class属性的值。
Bean的作用域
作用域 说明 singleton(单例) 该Bean(类)在Spring容器中只有一个实例,无论引用/获取这个Bean多少次,都指向同一个对象。 singleton是Bean的默认作用域,适用于无会话状态的Bean(如Dao组建、Service组件)。 prototype(原型) 每次获取该Bean时,都会创建一个新的实例。 request 在一次HTTP请求中,获取的是该Bean的同一个实例,该实例只在此次HTTP请求中有效。 对于不同的HTTP请求,会创建不同的实例。 session 在一次HTTP session中获取的是该Bean的同一个实例,该实例只在本次HTTP session中有效。 globalSession 在一个全局的HTTP session中,获取到的是该Bean的同一个实例。 只在使用portlet上下文时有效。 application 为每个ServletContext对象创建一个实例。 只在web相关的ApplicationContext中有效。 websocket 为每个websocket对象创建一个实例。 只在web相关的ApplicationContext中有效。
示例:singleton作用域
ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //获取到的这两个对象是同一个对象。 Student student1=applicationContext.getBean("student",Student.class); Student student2=applicationContext.getBean("student",Student.class); //输出相同 System.out.println(student1); System.out.println(student2);
缺省scope属性时,默认就是singleton作用域。
示例:prototype作用域
ClassPathXmlApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //获取到的这两个对象是不同的。调用getBean()一次,就创建一个新的对象。 Student student1=applicationContext.getBean("student",Student.class); Student student2=applicationContext.getBean("student",Student.class); //输出不同 System.out.println(student1); System.out.println(student2);
说明:
在xml配置文件中,一个
在调用getBean()时获取/引用容器中Bean实例时,Spring容器根据id/name找到这个Bean对应的配置,查看作用域,该重新新建这个Bean的实例就重新新建,该返回已存在的实例就返回已存在的实例。
name或index指定形参,name是用形参名指定,index是用形参列表的下标指定(从0开始)。缺省时,默认从第一个参数开始,依次传值。
value或ref指定实参值,value只能指定基础类型(Spring容器会自动转换为对应的数据类型),ref只能指定为其它的Bean(指定为其它Bean的name或id),根据需要选用。也可以用
可以写成这种形式:
依然是一个
参数可以是数组类型
参数可以是List、Map、Set类型
private List
一个
的效果一样,使用哪个都行。
Set:用法和List一样。
Map:
一个
说明:
因为元素对应得数据类型是List,
和
如果参数是基础数据类型或是其它的Bean,可以写成
给setter方法传递参数,一个setter方法设置一个属性,一个
如果Bean有多个setter方法,可使用多个
name指定形参名。value指定值(只能为Java基础类型),或者用ref指定其它Bean。当然也可以用对应的子元素。
同
注意:
和
因为
以上是“Spring怎么在xml文件中配置Bean”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!