如何启动Spring Boot的Main-Class?并实现IoC概念演示示例
嘿,我来帮你解决这两个问题,一步步来:
一、Spring Boot中启动Main-Class的正确方式
要启动Spring Boot应用,你的主类需要满足两个关键条件:
- 给主类添加
@SpringBootApplication注解——这个注解是个组合注解,包含了@Configuration、@ComponentScan和@EnableAutoConfiguration,能帮Spring自动完成组件扫描、配置加载和自动配置。 - 在
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
相关产品推荐
相关产品推荐

