创建一个Spring枚举bean并传递方法调用的值

Dar*_*Var 17 java enums spring

我有这个Singleton:

   public enum Elvis {
       INSTANCE;
       private int age;

       public int getAge() {
           return age;
       }
   }
Run Code Online (Sandbox Code Playgroud)

我知道如何在spring中创建枚举bean:

   <bean id="elvis" class="com.xyz.Elvis" factory-method="valueOf">
           <constructor-arg>
               <value>INSTANCE</value>
           </constructor-arg>
   </bean> 
Run Code Online (Sandbox Code Playgroud)

如何将INSTANCE.getAge()返回的int传递给另一个bean构造函数?

axt*_*avt 13

您可以使用Spring Expression Language:

<constructor-arg value = "#{elvis.age}" />
Run Code Online (Sandbox Code Playgroud)

或没有elvis豆:

<constructor-arg value = "#{T(com.xyz.Elvis).INSTANCE.age}" />
Run Code Online (Sandbox Code Playgroud)