【问题标题】:Spring context and application initiationSpring上下文和应用程序启动
【发布时间】:2014-07-24 10:34:08
【问题描述】:

我正在编写一个基于 Spring Boot 的应用程序。我正在尝试了解执行以下任一操作之间的区别和影响:

AbstractApplicationContext context = new AnnotationConfigApplicationContext(AppContext.class);

SpringApplication.run(MySpringConfiguration.class, args);

我对以下含义特别感兴趣:

  1. 自动装配。当我手动获取上下文时,里面的具体对象 我的班级没有自动连线,即使我可以在 上下文,调试时。
  2. 测试。哪种方式更容易测试?

【问题讨论】:

    标签: spring autowired spring-boot


    【解决方案1】:

    自动装配和测试在这两种情况下应该几乎相同(SpringApplication 有一个配套的测试注释@SpringApplicationContext,但这是唯一的主要区别)。区别在于 SpringApplication 在 vanilla 应用程序上下文之上提供的功能(嵌入式 servlet 容器、日志记录初始化、外部配置文件解析等)。

    【讨论】:

    • 只是为了仔细检查 - 东西不会被“自动装配”到我只做“new AnnotationConfigApplicationContext(..)”的类中。至少我看到的是这样。
    • 如果您以任何形式使用@Configuration,默认情况下自动装配应该工作。也许你没有这样做?
    猜你喜欢
    • 2013-04-03
    • 2021-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 2016-05-20
    相关资源
    最近更新 更多