Spring配置过多的bean会影响性能吗

J2EE 码拜 10年前 (2015-04-10) 2041次浏览 0个评论

例如有A.B两个类。
B要复用A中的c方法,于是在spring配置里把A注入B。在B中只要调用A.c就行了。
但是,假如,每当要复用别类的方法,就要注入整个对象,对系统性能是否有影响。
望各路大侠解答

Spring配置过多的bean会影响性能吗
2分
你担心的太多了吧 
这点开销对性能能有什么影响
Spring配置过多的bean会影响性能吗
5分
无关紧要,多创建一个实例几乎没影响,忽略不计。
如果你还有CDEFG…等等一大批都要调用它影响也不大
只调用其中一个方法的话你就直接把方法在B中,再写一遍,要是调用的比较多,注入一个也是必须的,楼主你多虑了。
Spring配置过多的bean会影响性能吗
如果只有你这些需求的话 不会影响性能的
Spring配置过多的bean会影响性能吗
引用 2 楼 yu749942362 的回复:

无关紧要,多创建一个实例几乎没影响,忽略不计。
如果你还有CDEFG…等等一大批都要调用它影响也不大
只调用其中一个方法的话你就直接把方法在B中,再写一遍,要是调用的比较多,注入一个也是必须的,楼主你多虑了。

我就是在项目里复用了方法,我们PL跟我说不要在spring里随便注入bean,而他则是在每个类里面写了同样的方法.

Spring配置过多的bean会影响性能吗
4分
你的bean如果是单例的,在启动的时候就已经初始化,后面注入的都是引用,对性能毫无影响.
Spring配置过多的bean会影响性能吗
5分
担心这个问题的话可以考虑lazy-init: <bean id=”lazy” class=”com.foo.ExpensiveToCreateBean” lazy-init=”true”/>
Spring配置过多的bean会影响性能吗
4分
首先Spring容器本身融入的大量设计模式,其次它的设计初衷就是为了进行动态注入,对于你的问题,实际上Spring就是为了向你说的那样用的,如果多的话可以逐层依赖,例如:
<!– customer bean a dao(sessionFactory) -》service(dao)-》action(service)逐层依赖 –>

<bean id=”customerDao” class=”com.shop.dao.impl.CustomerDaoImpl”>
<property name=”sessionFactory” ref=”sessionFactory”></property>
</bean>
    
<bean id=”customerService” class=”com.shop.service.impl.CustomerServiceImpl”>
<property name=”dao” ref=”customerDao”></property>
<property name=”commonDao” ref=”commonDao”></property>
</bean>
    
<bean id=”customerAction” class=”com.shop.struts.action.CustomerAction”
scope=”prototype”>
<property name=”service” ref=”customerService”></property>
</bean>
    

Spring配置过多的bean会影响性能吗
还有就是上面说的 他默认的单例模式。
Spring配置过多的bean会影响性能吗
Quote: 引用 5 楼 sc6231565 的回复:

你的bean如果是单例的,在启动的时候就已经初始化,后面注入的都是引用,对性能毫无影响.[/quot]

谢谢!  涨知识了。

Spring配置过多的bean会影响性能吗
引用 7 楼 cc6208048 的回复:

首先Spring容器本身融入的大量设计模式,其次它的设计初衷就是为了进行动态注入,对于你的问题,实际上Spring就是为了向你说的那样用的,如果多的话可以逐层依赖,例如:
<!– customer bean a dao(sessionFactory) -》service(dao)-》action(service)逐层依赖 –>

<bean id=”customerDao” class=”com.shop.dao.impl.CustomerDaoImpl”>
<property name=”sessionFactory” ref=”sessionFactory”></property>
</bean>
    
<bean id=”customerService” class=”com.shop.service.impl.CustomerServiceImpl”>
<property name=”dao” ref=”customerDao”></property>
<property name=”commonDao” ref=”commonDao”></property>
</bean>
    
<bean id=”customerAction” class=”com.shop.struts.action.CustomerAction”
scope=”prototype”>
<property name=”service” ref=”customerService”></property>
</bean>
    

谢谢!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Spring配置过多的bean会影响性能吗
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!