当前位置: 首页 > 知识库问答 >
问题:

如何在Spring-Boot中启动主类?

刁俊人
2023-03-14

我想执行一个非常简单的例子来解释Spring-Boot中的IOC概念。

为此,我创建了一个Bean,它将@Autowired转换为main-class,它有一个方法来处理Bean。

豆子:

@Component
public class MyMain {

    @Autowired
    private MyBean bean1;

    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) {
        //MyMain main = new MyMain();
        //main.usingTheBean();
    }
}
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
        MyMain main = new MyMain();
        main.usingTheBean();
    }
}
java.lang.NullPointerException 

我知道NullPointer-Exception的原因是我用“new”关键字创建了Main-class。

但是这个问题更多地集中在“我如何用Spring-Boot启动一个main-class”上。

共有1个答案

焦正德
2023-03-14

通常,您不希望直接使用上下文自己创建bean。您应该让上下文初始化,然后使用autowired bean。最有可能的是,您处理这个问题的方式与实现它的Spring-way非常不同。

您应该看看下面的示例:

  • 使用CommandLineRunner接口(请参见此处)或
  • 使用InitializingBean接口(请参见此处)
@Configuration
public class MyConfig {

  @Bean
  public MyBean myBean() {
    MyBean bean = new MyBean();
    bean.setName("...");
    bean.setAttribute("...");
    return bean;
  }
}
@Autowired
MyBean myBean;
@Component
public class MyBean {

  @Value("${my.config.value}")
  private String name;

  @Value("${my.config.attribute}")
  private String attribute;

  public MyBean(){

  }
...
my.config.value = Some value content
my.config.attribute = Some attribute content 
 类似资料:
  • 本文向大家介绍Spring Boot 启动端口如何启动,包括了Spring Boot 启动端口如何启动的使用技巧和注意事项,需要的朋友参考一下 Spring Boot 启动端口 Spring Boot 其默认是集成web容器的,启动方式由像普通Java程序一样,main函数入口启动。其内置Tomcat容器或Jetty容器,具体由配置来决定(默认Tomcat)。当然你也可以将项目打包成war包,放到

  • 并且我有以下类: 当中的为时,它继续,否则,应用程序应该关闭,我们可以在bean创建期间关闭应用程序吗?这是一个好的做法吗?有什么好办法处理这件事吗?

  • 我有一个简单的spring-boot项目: 3)尝试启动 我得到一个错误:

  • 我正在学习在springboot中使用solr,我在一本书中尝试了该程序,spring-boot-starter-parent版本是2.1.2。在书中发布: 而我的sping-boot-starter-父版本是2.6.4: 我在pom中添加了solr依赖项。xml格式如下: 但是pom.xml显示错误:版本不能为空,所以我去https://mvnrepository.com/,发现最新的sping

  • 大约对于独立的start as java进程: 大约需要20秒。但如果我在包含更多微服务的docker容器中运行它,则需要大约3分钟。有没有一种方法可以加快spring-boot的启动时间,例如,如果我启用debug longing,我注意到对于不同的spring配置有很多不必要的验证。如何使用Docker容器来加快仅用于开发目的的spring-boot启动时间?

  • 但是,我试图在Spring Boot 2 RESTful应用程序中设置执行器度量-下面支持的度量列表不包括度量, 有没有一种方法可以在Spring Boot2应用程序中包含指标?