在配置中,我有一个标志 isFlagEnabled。
所以我必须从 spring config 中读取标志,并基于它来执行特定的 class A 或 B 。这意味着我只想在 isFlagEnabled 为 true 时加载 A 类,类似地,仅在 isFlagEnabled 为 false 时加载 B 类。
我已经编写了以下代码,但是在摄取时我被卡住了。
public interface MediatorInt {
public void init();
}
class A implements MediatorInt {
init() { It does some task }
}
class B implements MediatorInt {
init(){ It does some task }
}
public class MasterNewGenImpl {
@Autowired
@Qualifier("config")
private Configuration config;
@Autowired
MediatorInt mediatorInt;
private final Logger logger = Logger.getLogger(getClass());
public void startService() {
mediatorInt.init();
}
}
context.xml 文件
<context:component-scan base-package="com.ca"/>
<bean id="config" class="com.ca.configuration.ConfigImplementation"/>
<bean id="masterSlave" class="com.ca.masterslave.A"/>
<bean id="systemState" class="com.ca.masterslave.B"/>
<bean id="masterSlaveNewGen" class="com.ca.masterslave.MasterNewGenImpl">
<property name = "mediatorOrMasteSlave" value="#{config.getMediatorMode() == 'true' ? 'systemState' : 'masterSlave'}" />
</bean>
所以现在我不知道如何根据配置标志注入特定对象。我想通过 Lazy-init 来实现,以便在不需要时不会加载其他对象。我非常感谢这些建议。