问题描述
我使用如下所示的spring boot @Configuration类注释创建了一个bean
@Configuration
public class CustomConfiguration {
@Bean
public MyEnvironmentProcessor myEnvironmentProcessor(Environment env) {
return new MyEnvironmentProcessor(env);
}
}
在其中一个应用程序中,我使用Spring XML创建Bean,然后使用Spring Boot加载它们,在那里我尝试以XML创建相同的Bean,但是它不起作用,我在下面尝试过
<bean id="myEnvironmentProcessor " class="com.example.MyEnvironmentProcessor">
<constructor-arg>
<bean class="org.springframework.core.env.Environment"/>
</constructor-arg>
</bean>
如何在Spring XML中创建等效的基于Java的bean?
春季版本:5.2.4.RELEASE 春季启动版本:2.2.5.RELEASE
解决方法
您可以通过引用其ID environment
而不是其类来引用该环境:
<bean id="myEnvironmentProcessor" class="com.example.MyEnvironmentProcessor">
<constructor-arg ref="environment"/>
</bean>
import org.springframework.core.env.Environment;
public class MyEnvironmentProcessor {
private Environment environment;
public MyEnvironmentProcessor(Environment environment) {
this.environment = environment;
}
}
顺便说一下,您的bean定义在ID中有一个空格字符; "myEnvironmentProcessor "