You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 14:10:18