Spring Boot XML Bean配置:创建OuterClass并设置InnerClass字段
Spring Boot XML配置实现OuterClass实例创建并设置InnerClass字段
要实现你给出的Java逻辑,在Spring Boot中通过XML配置Bean的方式可以这样做:
完整XML配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 最终的OuterClass实例 --> <bean id="outerClass" class="com.yourpackage.OuterClass"> <constructor-arg> <!-- 调用InnerClass的方法并返回修改后的实例 --> <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetObject"> <!-- 创建初始InnerClass实例,传入构造参数1和2 --> <bean class="com.yourpackage.OuterClass.InnerClass"> <constructor-arg value="1"/> <constructor-arg value="2"/> </bean> </property> <property name="targetMethod" value="nonStaticMethodInStaticClass"/> <property name="arguments" value="5"/> </bean> </constructor-arg> </bean> </beans>
配置说明
- 静态内部类实例化:静态内部类
InnerClass的全限定类名需写为OuterClass.InnerClass,Spring可直接通过该名称实例化,无需依赖外部类实例。 - 方法调用实现字段赋值:由于
toBeSet是私有字段且无setter方法,只能通过nonStaticMethodInStaticClass方法设置。这里使用Spring的MethodInvokingFactoryBean调用该方法,传入参数5,方法返回修改后的InnerClass实例。 - 构造器注入:将处理后的
InnerClass实例作为构造参数注入OuterClass,完成最终实例的创建,和你给出的Java逻辑完全一致。
注意事项
- 替换配置中的
com.yourpackage为实际的包路径。 - 确保Spring上下文能扫描到这个XML配置文件(可在Spring Boot启动类上添加
@ImportResource("classpath:your-config.xml"))。
内容的提问来源于stack exchange,提问作者melobago
相关产品推荐
相关产品推荐

