2016 - 2024

感恩一路有你

spring自带的对象怎么放入ioc容器 spring bean class作用?

浏览量:2770 时间:2023-04-27 23:48:41 作者:采采

spring bean class作用?

1.作用

Bean标签是主要是用于配置对象,让spring来创建家族的。

默认情况下它动态创建的是类中的无参构造函数。假如没有无参构造函数则不能创建成功。

2.属性

id:给对象在容器中提供一个仅有标有,用于获取对象。

class:更改类的全限制要求属性名,主要用于反射修改对象。默认情况下动态链接库无参构造函数。

scope:指定你对象的作用范围。

二、Bean标签的属性

Bean标签中的scope属性,主要用于详细解释bean的作用域。取值万分感谢:

singleton:默认值,单例的。代表在Spring Ioc容器中只能一个Bean实例。

prototype:多例的。在这一瞬间从Spring容器中声望兑换时都会直接返回两个新的实例。

request:WEB项目中,Spring创建战队一个Bean的对象,将对象存进到request域中。

session:WEB项目中,Spring创建角色一个Bean的对象,将对象转存到session域中。

globalsession:WEB项目中,作用于集群环境(Porlet)的会话范围(全局会话范围)。要是没有集群环境(Portlet)那就globalSession超过session。

init-method:更改类中的初始化方法名称。

destroy-method:重新指定类中消毁方法名称。

三、Bean标签的scope属性

scope属性t只能证明

单例singletont对象只创建角色四次,容器修改时创建战队

原型prototypet每全局函数一次就创建角色三个新的对象,对象动态链接库时修改

requestt每次来HTTP帮忙时创建家族一个实例

sessiont根据每个HTPPsession修改一个实例

1.测试scope“singleton”

singleton:默认值,单例的。代表在Spring Ioc容器中唯有一个Bean实例。

lt?xmlversion#341.0#34encoding#34UTF-8#34?rlm

ltbeansxmlns##34

txmlns:xsi##34

txsi:schemaLocation##34dstrok

tltbeanid#34p#34class##34cgtlt/beangt

lt/beansgt

package

importorg.junit.Test

import

import

import

/**

*类只能说明:

*tt测试Bean标签的scope属性

*@guoqianliang1998.

*/

welfareclassDemo{

tpublicvoidtestScope(){

ttApplicationContextacnewClassPathXmlApplicationContext(#34applicationContext.xml#34)

ttPersonp1(Person)(#34p#34)

ttPersonp2(Person)(#34p#34)

ttPersonp3(Person)(#34p#34)

(p1)

(p2)

(p3)

t

“prototype”

prototype:多例的。在这一瞬间从Spring容器中查看时都会回个新的实例。

lt?xmlversion#341.0#34encoding#34UTF-8#34?r26

ltbeansxmlns##34

txmlns:xsi##34

txsi:schemaLocation##34a8

tltbeanid#34p#34class##34scope#34prototype#34gtlt/beangt

lt/beansgt

package

importorg.junit.Test

import

import

import

/**

*类那说明:

*tt测试Bean标签的scope属性

*@guoqianliang1998.

*/

privateclassDemo{

tpublicvoidtestScope(){

ttApplicationContextacfunClassPathXmlApplicationContext(#34applicationContext.xml#34)

ttPersonp1(Person)(#34p#34)

ttPersonp2(Person)(#34p#34)

ttPersonp3(Person)(#34p#34)

(p1)

(p2)

(p3)

四、scope#34singleton#34给他的线程安全问题

单例模式下,在对象实体类的成员位置通过增改改,很有可能会演变成线程安全问题。

而写在函数内部(只是局部位置)则肯定不会直接导致线程安全问题,这是而且对象每当调用函数,都会在栈空间中界域空间,函数执行完就后退,生命周期短。

package

import

import

/**

*类只能证明:

*tt实体类Person

*@guoqianliang1998.

*/

publicclassPerson{

tprivateStringname

t//如果不是对list接受增改改,肯定影响到线程安全问题。

tpublicListltStringgt list new ArrayListltStringgt()

t//无参构造

tpublicPerson(){

t}

t//有参构造

tpublicPerson(String name){

name

t}

tpublicvoidtalk(){

(#34talk方法...#34)

t}

}

spring是对什么进行操作?

Spring是一个开源的轻量级的应用程序开发框架,其目的是简化后企业的应用程序开发,降底侵蚀性,Spring提供给的IOC和AOP功能,可以将组件之间的耦合度降到最多,便于后期的维护和可以升级,实现了软件的高内聚低耦合思想。

使用Spring框架变更土地性质的时候不仅也可以不使用Spring本身需要提供的功能外,还也可以不使用第三方框架和技术来全部整合应用,是可以自由的选择常规哪种技术去开发。

对象 Bean scope 属性 Spring

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。