찾다

 >  Q&A  >  본문

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일 전873

모든 응답(4)나는 대답할 것이다

  • 大家讲道理

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

    속성 구성 파일을 사용하여 해결할 수 있습니다
    1. config.properties와 같은 속성 파일을 추가하고 dao.prefix=.
    이 속성 파일을 정의합니다. 스프링 구성 파일.
    3. ${dao.prefix}와 같은 <bean>에서 속성 파일 변수를 사용할 수 있습니다.
    4. 서비스에서 선택적 주입이 가능합니다.

    으아악

    회신하다
    0
  • PHP中文网

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

    Spring의 프로필을 사용하여 이 문제를 해결할 수 있습니다. 프로필은 사용자의 요구 사항을 충족하기 위해 다양한 환경의 다양한 구성(예: 데이터베이스 구성)에 대응하는 데 사용될 수 있습니다.

    다음은 세 가지 프로필(dev, test, product)에서 동일한 Bean의 세 가지 다른 속성을 구성합니다.

    으아악

    프로그램 시작 시 프로필을 활성화하는 방법은 여러 가지가 있습니다. 다음 중 하나를 선택하세요.

    코드 방식

    으아악

    java 명령-Dspring.profiles.active="dev"

    으아악

    web.xml

    웹 프로젝트인 경우 web.xml을 구성할 수 있습니다

    으아악

    다른 프로필로 시작하면 다른 Bean과 다른 구성이 로드됩니다.

    회신하다
    0
  • 迷茫

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

    으아악

    회신하다
    0
  • 巴扎黑

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

    spel로 문제가 해결될지는 모르겠지만, 검색해서 보시면 됩니다

    회신하다
    0
  • 취소회신하다