<bean id="systemUserService" class="com.alan.SystemUserServiceImpl">
<if ***>
<property name="exm1" ref="exm1"></property>
</if>
<else if ***>
<property name="exm2" ref="exm2"></property>
</else if>
<else>
<property name="exm3" ref="exm3"></property>
</else>
</bean>
不知道有spring的配置文件有没有以上的实现,根据判断条件来决定注入哪一个对象
++++++++++++++++++++++++++分隔线+++++++++++++++++++++++++++++++++
我所想到的另一途径是
1、新建一个.properties文件,来定义常量,如dubboOrSql=1
2、新建一个工具类ConstantsConfig来读取上面的.properties文件的常量。
3、在serviceImpl类中,对此进行判断 ,来决定实例化哪个对象.
ISystemData sd;
String dubboOrSql = ConstantsConfig.getDubboOrSql();
if("1".equals(dubboOrSql)){
sd = app.getBean("exap1");
}else if("0".equals(dubboOrSql)){
sd = app.getBean("exap2");
}
//后面就是调用sd的一些方法了。
プロパティ設定ファイルを使用して解決できます
4. リーリー1. config.propertiest などのプロパティ ファイルを追加し、キーと値のペア dao.prefix=.
2.スプリング構成ファイル。
3.
では、${dao.prefix} などの属性ファイル変数を使用できます。
Spring のプロファイルを使用すると、この問題を解決できます。プロファイルを使用すると、さまざまな環境のさまざまな構成 (データベース構成など) に対応し、ニーズを実現できます。
以下は、3 つのプロファイル (dev、test、product) の下で同じ Bean の 3 つの異なる属性を構成します。
リーリープログラムの開始時にプロファイルを有効にする方法はたくさんありますが、いずれかを選択してください:
コードメソッド
リーリーjava command-Dspring.profiles.active="dev"
リーリーweb.xml
Web プロジェクトの場合は、web.xml を構成できます
リーリー異なるプロファイルで開始すると、異なる Bean と異なる設定がロードされます。
リーリー
spel で問題が解決できるかどうかはわかりませんが、検索して確認してください