<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的一些方法了。
Ia boleh diselesaikan menggunakan fail konfigurasi sifat
1 Tambahkan fail sifat, seperti config.propertiest, dan tentukan pasangan nilai kunci dao.prefix=.
2 fail konfigurasi spring.
3. Anda boleh menggunakan pembolehubah fail atribut dalam <bean>, seperti ${dao.prefix}
4 Suntikan terpilih boleh dilakukan dalam perkhidmatan:
Anda boleh menggunakan profil Spring untuk menyelesaikan masalah ini. Profil boleh digunakan untuk sepadan dengan konfigurasi yang berbeza (seperti konfigurasi pangkalan data) dalam persekitaran yang berbeza untuk memenuhi keperluan anda.
Yang berikut mengkonfigurasikan tiga atribut berbeza bagi kacang yang sama di bawah tiga profil (dev, ujian, produk):
Bagaimana untuk mendayakan profil apabila program bermula, terdapat banyak cara, cuma pilih satu:
Kaedah kod
arahan java-Dspring.profiles.active="dev"
web.xml
Jika ia adalah projek web, anda boleh mengkonfigurasi web.xml
Bermula dengan profil yang berbeza akan memuatkan kacang yang berbeza dan konfigurasi yang berbeza.
Saya tidak tahu sama ada ejaan boleh menyelesaikan masalah, anda boleh cari dan lihat