検索

ホームページ  >  に質問  >  本文

java - spring配置文件如何实现判断语句

<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_leeringa_lee2818日前872

全員に返信(4)返信します

  • 大家讲道理

    大家讲道理2017-04-18 09:07:01

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

    4. リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:07:01

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

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

    リーリー

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

    コードメソッド

    リーリー

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

    リーリー

    web.xml

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

    リーリー

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

    返事
    0
  • 迷茫

    迷茫2017-04-18 09:07:01

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:07:01

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

    返事
    0
  • キャンセル返事