匿名春豆

时间:2010-10-25 17:03:48

标签: java spring javabeans

匿名Spring bean有用吗?

3 个答案:

答案 0 :(得分:12)

我可以直接想到两种用途。

作为内核

<bean id="outer" class="foo.bar.A">
  <property name="myProperty">
    <bean class="foo.bar.B"/>
  </property>
</bean>

作为静态属性的配置器

public class ServiceUtils {

      private static Service service;

      private ServiceUtils() {}
      ...

      public static void setService(Service service) {
        this.service = service;
      }
    }

    public class ServiceConfigurer {
      private static Service service;

      private ServiceUtils() {}
      ...

      public void setService(Service service) {
        ServiceUtils.setService(service);
          }
    }

现在可以像这样配置类。

<bean class="foo.bar.ServiceConfigurer">
    <property name="service" ref="myService"/>
</bean>

此外,如果有一个bean不依赖于任何其他bean,例如RmiServiceExporter或MessageListenerContainer,则除了代码清晰度之外,不需要为此bean命名。

答案 1 :(得分:4)

有几种用途:

  • 一个bean内联注入其他bean的依赖
  • 实现InitializingBean和DisposableBean的bean,因此他的方法由IoC容器调用
  • 实现BeanClassLoaderAware,BeanFactoryPostProcessor和其他回调接口的bean

答案 2 :(得分:4)

除了已经提供的答案(内部bean,生命管理接口,静态属性的配置器)之外,我还会另外一个,我们经常使用它们。那是......

  • 与自动装配相结合(按类型)。当您配置给定类型的多个对象时,您并不真正关心如何在XML中调用它们。