Spring Boot Hello World示例 之 Spring Boot REST示例

Spring BootSpring框架的开发人员开发的子项目,以最小的配置创建独立的生产级应用程序。Spring Boot应用程序通常捆绑为fat / uber jar文件,并且可以作为简单的jar文件部署在任何平台上。这就是为什么Spring Boot应用程序是在Java中构建微服务的理想选择。

让我们从eclipse中spring boot hello world示例开始逐步学习。

目录

1.创建spring boot hello world项目模板
2.将spring boot项目导入eclipse 
3. Spring boot自动配置
4. Spring boot注解
5.如何通过spring boot验证自动配置的bean 
6. Spring boot REST API示例
7.演示

1.创建spring boot hello world项目模板

要为spring boot应用程序创建模板,我建议使用http://start.spring.io/。在这里,您可以选择当前考虑的所有依赖关系,并生成项目。

Spring Boot选项
Spring Boot选项

我选择了JerseySpring Web,Spring HATEOAS,Spring JPA和Spring Security等依赖项。在下载并导入项目后或将来出现需求时,可以添加更多依赖项。

Generate Project按钮将生成一个.zip文件。下载文件并将其解压缩到您的工作区中。

2.导入spring boot项目到eclipse

下一步是将生成的项目导入到IDE中。我为此使用了eclipse。

1)将spring boot项目导入为现有的maven项目。

将现有的Maven项目导入Eclipse
将现有的Maven项目导入Eclipse

2)选择pom.xml要导入的文件。

选择pom.xml文件导入Maven项目
选择pom.xml文件导入Maven项目

3)将导入项目,并且在生成zip文件时添加的依赖项将自动下载并添加到classpath中。

导入的Spring Boot项目结构
导入的Spring Boot项目结构

您现在已经成功导入了spring boot应用程序。现在,让我们看看它已经为您配置了什么。

3. Spring Boot自动配置

使用spring boot时,好事是当您添加一个依赖项(例如Spring security)时,它会做出合理的假设并自动为您配置一些默认值。因此,您可以立即开始。

Spring Boot通过扫描类路径中可用的依赖库来使用约定而非配置。对于spring-boot-starter-*POM文件中的每个依赖关系,Spring Boot执行一个默认AutoConfiguration类。AutoConfiguration类使用*AutoConfiguration词法模式,其中*表示库。例如,spring安全性的自动配置是通过完成的SecurityAutoConfiguration

同时,如果您不想对任何项目使用自动配置,则此操作非常简单。只需使用exclude = SecurityAutoConfiguration.class如下。

@SpringBootApplication (exclude = SecurityAutoConfiguration.class)
public class SpringBootDemoApplication {
   public static void main(String[] args)
   {
      SpringApplication.run(SpringBootDemoApplication.class, args);
   }
}

也可以使用application.properties文件src/main/resources夹中的文件覆盖默认配置值。

4. Spring Boot注解

现在看一下@SpringBootApplication注解的实际作用。

4.1。@SpringBootApplication注解

SpringBootApplication 定义如下:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class))
public @interface SpringBootApplication
{
   //more code
}

它为应用程序配置目的添加了3个重要的注解。

  1. @SpringBootConfiguration
    @Configuration
    public @interface SpringBootConfiguration
    {
       //more code
    }

    该注解@Configuration为类添加注解,该注解将类标记为应用程序上下文的Bean定义的源。

  2. @EnableAutoConfiguration

    这告诉Spring Boot pom.xml通过基于类路径设置,其他bean和各种属性设置添加bean来基于添加的依赖关系自动配置重要的bean定义。

  3. @ComponentScan

    该注解告诉Spring Boot扫描基本软件包,查找其他bean /组件并对其进行配置。

5.如何通过Spring Boot验证自动配置的Bean

如果您想知道在Spring Boot Hello World应用程序中已自动配置了所有bean ,请使用此代码并运行它。

SpringBootDemoApplication.java
import java.util.Arrays;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration;
import org.springframework.context.ApplicationContext;
@SpringBootApplication (exclude = SecurityAutoConfiguration.class)
public class SpringBootDemoApplication {
   public static void main(String[] args)
   {
      ApplicationContext ctx = SpringApplication.run(SpringBootDemoApplication.class, args);
        String[] beanNames = ctx.getBeanDefinitionNames();
        
        Arrays.sort(beanNames);
        
        for (String beanName : beanNames)
        {
            System.out.println(beanName);
        }
   }
}

对于我的pom.xml文件,它会生成以下bean名称以及许多其他springframework.boot.autoconfigure依赖项。

安慰
simpleControllerHandlerAdapter
sortResolver
spring.datasource-org.springframework.boot.autoconfigure.jdbc.DataSourceProperties
spring.hateoas-org.springframework.boot.autoconfigure.hateoas.HateoasProperties
spring.http.encoding-org.springframework.boot.autoconfigure.web.HttpEncodingProperties
spring.http.multipart-org.springframework.boot.autoconfigure.web.MultipartProperties
spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties
spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties
spring.jpa-org.springframework.boot.autoconfigure.orm.jpa.JpaProperties
spring.jta-org.springframework.boot.autoconfigure.transaction.jta.JtaProperties
spring.mvc-org.springframework.boot.autoconfigure.web.WebMvcProperties
spring.resources-org.springframework.boot.autoconfigure.web.ResourceProperties
springBootDemoApplication
standardJacksonObjectMapperBuilderCustomizer
stringHttpMessageConverter
tomcatEmbeddedServletContainerFactory
tomcatPoolDataSourceMetadataProvider
transactionAttributeSource
transactionInterceptor
transactionManager
transactionTemplate
viewControllerHandlerMapping
viewResolver
websocketContainerCustomizer

6. Spring Boot REST API示例

现在是时候将任何功能构建到hello world应用程序中了。您可以根据需要添加功能,我正在添加REST API

6.1。创建REST控制器

创建一个包com.how2codex.demo.controller并在其中创建rest控制器。

EmployeeController.java
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.how2codex.demo.model.Employee;
@RestController
public class EmployeeController
{
   @RequestMapping("/")
    public List<Employee> getEmployees()
    {
      List<Employee> employeesList = new ArrayList<Employee>();
      employeesList.add(new Employee(1,"lokesh","gupta","mobtrack_service@163.com"));
      return employeesList;
    }
}

6.2。建立模型

创建模型类Employee

Employee.java
public class Employee {
   public Employee() {
      
   }
   public Employee(Integer id, String firstName, String lastName, String email) {
      super();
      this.id = id;
      this.firstName = firstName;
      this.lastName = lastName;
      this.email = email;
   }
   
   private Integer id;
   private String firstName;
   private String lastName;
   private String email;
   
   //getters and setters
   @Override
   public String toString() {
      return "Employee [id=" + id + ", firstName=" + firstName
            + ", lastName=" + lastName + ", email=" + email + "]";
   }
}

7. Spring Boot Hello World示例演示

现在,通过运行中的main()方法启动应用程序SpringBootDemoApplication。它将在port上启动嵌入式tomcat服务器8080

由于我们已将演示REST API URL配置为根URL,因此您可以http;//localhost:8080/自行访问它。

验证Spring Boot REST API
验证Spring Boot REST API

您将在测试工具或浏览器中收到以下响应。

[{“ id”:1,“ firstName”:“ lokesh”,“ lastName”:“ gupta”,“ email”:“ mobtrack_service@163.com”}]

这就是这个Spring Boot Rest Hello世界示例以及简单的Rest API示例的全部内容。

让我问您有关如何使用Maven在Eclipse中创建Spring Boot项目的问题。

saigon has written 1440 articles

Leave a Reply