匿名春豆

fas*_*ava 5 java spring javabeans

匿名的Spring bean如何有用?

mR_*_*r0g 13

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

作为内在的豆

<bean id="outer" class="foo.bar.A">
  <property name="myProperty">
    <bean class="foo.bar.B"/>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

作为静态属性的配置器

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);
          }
    }
Run Code Online (Sandbox Code Playgroud)

现在该类可以像这样配置.

<bean class="foo.bar.ServiceConfigurer">
    <property name="service" ref="myService"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

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