Java + Spring Boot中的@SpringBootApplication注释示例

大家好!今天,我们将从流行的Spring Boot框架中了解最重要的注释之一,该注释已改变了Java开发人员使用Spring编写Java应用程序的方式。在本文中,我将解释@SpringBootApplication的含义及其在简单的Spring Boot应用程序中的用法。我们在Application或Main类中使用@SpringBootApplication批注来启用许多功能,例如,基于Java的Spring配置,组件扫描,尤其是启用Spring Boot的自动配置功能。

如果您已经使用Spring Boot很长时间了,那么您就知道我们需要使用很多注释来对Application类或Main类进行注释,例如:

@Configuration启用基于Java的配置
@ComponentScan启用组件扫描。
@EnableAutoConfiguration启用Spring Boot的自动配置功能。
但是现在您可以通过使用@SpringBootApplication注释Application类来完成所有操作。

顺便说一句,此注释从Spring 1.2开始可用,这意味着,如果您在较低的Spring Boot版本上运行,则如果需要这些功能,则仍需要使用@ Configuration,@ CompnentScan和@EnableAutoConfiguration。

@SpringBootApplication示例
这是一个简单的示例,说明如何使用@SpringBootApplication批注编写Spring Boot应用程序。此代码示例摘自我之前的文章,该文章有关使用Spring使用RESTful Web服务。在此示例中,我们使用了RestTempalte类来使用RESTful Web服务。

package tool;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
public class Hello implements CommandLineRunner {
    private static final Logger log = LoggerFactory.getLogger(Hello.class);
  
    public static void main(String args[]) {
        SpringApplication.run(Hello.class);
    }

    @Override
    public void run(String...args) throws Exception {
        RestTemplate restTemplate = new RestTemplate();
        Country country = restTemplate.getForObject("http://www.services.groupkt.com/country/get/iso2code/US", Country.class);
        log.info(country.toString());
    }
}

Main类在Spring Boot应用程序中有两个用途:configuration和bootstrapping。首先,它是主要的Spring配置类,其次,它启用了Spring Boot应用程序的自动配置功能。

如果您想了解更多有关基本Spring Boot功能的信息,例如自动配置和Starter依赖项,那么Spring Boot Essentials是快速学习它们的好地方。

@SpringBootApplication = @配置+ @ComponentScan + @EnableAutoConfiguration
@SpringBootApplication批注是以下三个Spring批注的组合,并且仅用一行代码即可提供全部三个功能。

@组态
此注释将一个类标记为基于Java的配置的Configuration类。如果您更喜欢基于Java的配置而不是XML配置,那么这尤其重要。

@ComponentScan
该注释启用了组件扫描,因此将自动发现Web控制器类和您创建的其他组件,并将其注册为Spring的Application Context中的bean。您编写的所有@Controller类都可以通过此注释发现。

@EnableAutoConfiguration
该注释启用了Spring Boot的神奇自动配置功能,该功能可以自动为您配置很多东西。

例如,如果您正在编写Spring MVC应用程序,并且在应用程序类路径上具有Thymeleaf JAR文件,则Spring Boot自动配置可以自动自动配置Thymeleaf模板解析器,视图解析器和其他设置。

因此,可以说@SpringBootApplication是3合1批注,结合了@ Configuration,@ ComponentScan和@EnableAutoConfiguration的功能。

它还将该类标记为BootStrap类,这意味着您可以将其作为普通Java类运行,例如,通过从命令提示符处运行其JAR文件(如此处所示),或右键单击并将其作为Eclipse中的Java程序运行IDE。

这将启动Spring Boot随附的嵌入式服务器,并在其中运行您的Web应用程序。一旦看到日志且没有任何错误,就可以转到浏览器并使用服务器端口打开localhost来访问您的Spring Boot应用程序。

这就是@SpringBootApplication批注和一个演示如何使用它的简单应用程序。就像我说的那样,这个漂亮的小注解包含了很多麻烦。您只需编写这一行代码即可启用基于Java的配置,组件扫描以及启用Spring Boot的自动配置功能。它使您的代码更具可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值