Springプロファイル注入変数nullソリューション


   <bean id="targetCommentsAutoReplyBiz" class="com.yododo.biz.micro.autoReply.impl.TargetCommentsAutoReplyBizImpl">
      <property name="autoreplyContentReplaceMap">
         <map>
           <entry key="areaname">
             <bean class="com.yododo.biz.micro.autoReplyMode.impl.AreaNameReplaceBizImpl"></bean>
           </entry>
         </map>
       </property>
   </bean>
   
   <bean id="autoreplyLogBiz" class="com.yododo.biz.micro.impl.AutoreplyLogBizImpl">
      <property name="autoReplyMap">
         <map>
           <entry key="targetComments">
             <ref bean="targetCommentsAutoReplyBiz"/>
             <bean class="com.yododo.biz.micro.autoReply.impl.TargetCommentsAutoReplyBizImpl"></bean>
           </entry>
         </map>
       </property>
   </bean>

 
元のコードは上記のように、comに注入する.yododo.biz.micro.impl.AutoreplyLogBizImplのautoReplyMapのTargetCommentsAutoReplyBizImplのautoreplyContentReplaceMapはnullです.
解析理由:autoreplyLogBizにautoReplyMapを注入してautoReplyMapを初期化したとき、TargetCommentsAutoReplyBizImplオブジェクトはspringコンテナから取得されず、1つのオブジェクトを再newし、もちろん再new TargetCommentsAutoReplyBizImplのautoreplyContentReplaceMapではありませんので..
 
次のように構成された解決策です.
 
   <bean id="targetCommentsAutoReplyBiz" class="com.yododo.biz.micro.autoReply.impl.TargetCommentsAutoReplyBizImpl">
      <property name="autoreplyContentReplaceMap">
         <map>
           <entry key="areaname">
             <bean class="com.yododo.biz.micro.autoReplyMode.impl.AreaNameReplaceBizImpl"></bean>
           </entry>
         </map>
       </property>
   </bean>
   
   <bean id="autoreplyLogBiz" class="com.yododo.biz.micro.impl.AutoreplyLogBizImpl">
      <property name="autoReplyMap">
         <map>
           <entry key="targetComments">
             <ref bean="targetCommentsAutoReplyBiz"/>
           </entry>
         </map>
       </property>
   </bean>