Java + Spring Boot中的@SpringBootApplication注解

Java + Spring Boot中的@SpringBootApplication注解

Spring Boot彻底改变了Java应用程序的创建方式。也许最重要的注释是@SpringBootApplication。让我们深入了解原因。

 

 

 

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

如果你已经使用Spring Boot很长一段时间了,那么你知道我们需要注释我们的Application类或Main类,并开始使用相当多的注释,例如:

  1. @Configuration启用基于Java的配置
  2. @ComponentScan启用组件扫描。
  3. @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应用程序中有两个用途:配置引导。首先,它是主要的Spring配置类,其次,它启用了Spring Boot应用程序的自动配置功能。

 

@SpringBootApplication = @Configuration + @ComponentScan + @EnableAutoConfiguration

@SpringBootApplication注释是以下三个Spring注释的组合,只需一行代码即可提供所有三个注释的功能。

@组态

此批注将类标记为基于Java的配置的Configuration类。如果您喜欢基于Java的配置而不是XML配置,这一点尤为重要。 

@ComponentScan

此批注启用了组件扫描,以便您创建的Web控制器类和其他组件将自动发现并在Spring的应用程序上下文中注册为bean。您编写的所有@Controller类都由此批注发现。

@EnableAutoConfiguration

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

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

因此,您可以说@SpringBootApplication是一个三合一注释,它结合了@ Configuration,@ ComponentScan和@EnableAutoConfiguration的功能。

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

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

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

 

本文出处:

贾文保罗

    · 6月13日,18日 

https://dzone.com/articles/the-springbootapplication-annotation-example-in-ja

你可能感兴趣的:(Spring,注解)