日期:2014-05-19  浏览次数:20796 次

Spring注入问题求教,往指教!
小弟拿到一段代码, 如下。
其他的bean注入都还看得懂,但是为什么storeDao这个bean里面ref了2个catalogDataSource和cacheService.就拿catalogDataSource举例吧:
  在class文件中是这样
  @Resource(name = "applicationEnvironment")
  public void setApplicationEnvironment(String applicationEnvironment) {
  this.applicationEnvironment = applicationEnvironment;
  LOG.info("set applicationEnvironment=" +
  applicationEnvironment);
  }

  在xml中是这样
  private String applicationEnvironment;

  <bean id="storeDao" class="xxx.StoreDaoImpl">
  <property name="storeDataSource" ref="catalogDataSource" />
  <property name="cacheService" ref="cacheService" />
  <property name="applicationEnvironment" ref="applicationEnvironment" />
  </bean>

  <bean id="applicationEnvironment" class="java.lang.String">
  <constructor-arg value="${application.environment}" />
  </bean>

小弟学艺不精,求教catalogDataSource是哪里来的啊?根本没有这个bean嘛
还有,那个applicationEnvironment的bean怎么解释?
"${application.environment}"是什么意思啊?谢谢了!

------解决方案--------------------
catalogDataSource是哪里来的啊?根本没有这个bean嘛
这个bean可能配置在其他配置文件中
还有,那个applicationEnvironment的bean怎么解释?
"${application.environment}"是什么意思啊?谢谢了!
这个其实就是一个字符串,值等于"${application.environment}"
application.environment也应该是配置文件里面配置的,一般是.property文件
------解决方案--------------------
<bean id="applicationEnvironment" class="java.lang.String">
<constructor-arg value="${application.environment}" />
</bean>
${application.environment} 这个就像c3p0的数据源配置,取配置文件的内容,${url},${name}
@Resource(name="")
指定名字注入