我们的目标是在Spring Boot中运行一个简单的微服务,然后重复这个步骤以提供功能。为此,我们需要在许可证服务微服务中创建以下两个类。
一个Spring引导类,可被Spring Boot用于启动和初始化应用程序。
一个Spring控制器类,用来公开可以被微服务调用的HTTP端点。
如刚才所见,Spring Boot使用注解来简化设置和配置服务。在代码清单2-2中查看引导类时,这一点就变得显然易见。这个引导类位于src/main/java/com/thoughtmechanix/licenses/Application.java文件。
代码清单2-2 @SpringBootApplication注解简介
-
package com.thoughtmechanix.licenses;
-
import org.springframework.boot.SpringApplication;
-
import org.springframework.boot.autoconfigure.SpringBootApplication;
-
@SpringBootApplication ⇽--- @SpringBootApplication告诉Spring Boot框架,这是项目的引导类
-
public class Application {
-
public static void main(String[] args) {
-
SpringApplication.run(Application.class, args); ⇽--- 调用以启动整个Spring Boot服务
-
}
-
}
在这段代码中需要注意的第一件事是@SpringBootApplication的用法。Spring Boot使用这个注解来告诉Spring容器,这个类是在Spring中使用的bean定义的源。在Spring Boot应用程序中,可以通过以下方法定义Spring Bean。
(1)用@Component、@Service或@Repository注解标签来标注一个Java类。
(2)用@Configuration注解标签来标注一个类,然后为每个我们想要构建的Spring Bean定义一个构造器方法并为方法添加上@Bean标签。
在幕后,@SpringBootApplication注解将代码清单2-2中的Application类标记为配置类,然后开始自动扫描Java类路径上所有的类以形成其他的Spring Bean。
第二件需要注意的事是Application类的main()方法。在main()方法中,Spring Application.run(Application.class, args)调用启动了Spring容器,然后返回了一个Spring ApplicationContext对象(这里没有使用ApplicationContext做任何事情,因此它没有在代码中展示。)。
关于@SpringBootApplication注解及其对应的Application类,最容易记住的是,它是整个微服务的引导类。服务的核心初始化逻辑应该放在这个类中。