java - spring配置文件如何实现判断语句
ringa_lee
ringa_lee 2017-04-18 09:05:01
0
4
844
<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的一些方法了。
ringa_lee
ringa_lee

ringa_lee

全員に返信(4)
大家讲道理

プロパティ設定ファイルを使用して解決できます
1. config.propertiest などのプロパティ ファイルを追加し、キーと値のペア dao.prefix=.
2.スプリング構成ファイル。
3.
では、${dao.prefix} などの属性ファイル変数を使用できます。

4. リーリー
いいねを押す +0
洪涛

Spring のプロファイルを使用すると、この問題を解決できます。プロファイルを使用すると、さまざまな環境のさまざまな構成 (データベース構成など) に対応し、ニーズを実現できます。

以下は、3 つのプロファイル (dev、test、product) の下で同じ Bean の 3 つの異なる属性を構成します。

リーリー

プログラムの開始時にプロファイルを有効にする方法はたくさんありますが、いずれかを選択してください:

コードメソッド

リーリー

java command-Dspring.profiles.active="dev"

リーリー

web.xml

Web プロジェクトの場合は、web.xml を構成できます

リーリー

異なるプロファイルで開始すると、異なる Bean と異なる設定がロードされます。

いいねを押す +0
迷茫

リーリー

いいねを押す +0
巴扎黑

spel で問題が解決できるかどうかはわかりませんが、検索して確認してください

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート