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

如何启动Spring Boot的Main-Class?并实现IoC概念演示示例

嘿,我来帮你解决这两个问题,一步步来:

一、Spring Boot中启动Main-Class的正确方式

要启动Spring Boot应用,你的主类需要满足两个关键条件:

  1. 给主类添加@SpringBootApplication注解——这个注解是个组合注解,包含了@Configuration、@ComponentScan和@EnableAutoConfiguration,能帮Spring自动完成组件扫描、配置加载和自动配置。
  2. 在main方法中调用SpringApplication.run()方法,传入主类的Class对象和命令行参数,以此启动Spring IoC容器。

二、完善IoC示例代码并解释核心概念

首先,先补全你提到的MyBean代码(假设你还没完善它):

@Component // 标注这个类为Spring管理的Bean
public class MyBean {
    private String name;
    private String attribute;

    // Getter、Setter方法
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAttribute() {
        return attribute;
    }

    public void setAttribute(String attribute) {
        this.attribute = attribute;
    }

    // 重写toString,方便打印Bean内容
    @Override
    public String toString() {
        return "MyBean{" +
                "name='" + name + '\'' +
                ", attribute='" + attribute + '\'' +
                '}';
    }
}

接下来完善你的MyMain类的main方法,同时补上必要的注解:

@SpringBootApplication // 必须添加这个注解启动Spring Boot
@Component // 因为你要把MyMain也交给Spring管理,才能注入MyBean
public class MyMain {
    @Autowired
    private MyBean bean1; // Spring自动注入容器中的MyBean实例

    public void usingTheBean() {
        bean1.setName("Thats my first bean!");
        bean1.setAttribute("And thats just an attribute");
        System.out.println(bean1);
    }

    public static void main(String[] args) {
        // 启动Spring容器,返回ApplicationContext(IoC容器的核心接口)
        ApplicationContext context = SpringApplication.run(MyMain.class, args);
        
        // 从容器中获取MyMain的实例(因为MyMain被@Component标注,已被容器管理)
        MyMain mainInstance = context.getBean(MyMain.class);
        
        // 调用方法使用注入的Bean
        mainInstance.usingTheBean();
    }
}

关于IoC概念的解释:

这里的核心就是控制反转(IoC):

  • 原本我们需要手动new MyBean()来创建对象,现在这个控制权交给了Spring IoC容器——由容器负责Bean的创建、初始化、依赖注入和销毁。
  • @Autowired是**依赖注入(DI)**的一种实现方式,Spring会自动在容器中找到MyBean的实例,把它赋值给bean1字段,不需要我们手动创建和关联对象,实现了代码的解耦。

运行这个代码后,控制台会输出:

MyBean{name='Thats my first bean!', attribute='And thats just an attribute'}

内容的提问来源于stack exchange,提问作者watchme

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:22:04