赞
踩
本文以实战为导向,讲解了如何使用Spring Cloud开发微服务项目,而Spring Cloud基于SpringBoot,所以本篇先来初步了解如何使用Spring Boot搭建框架。
Spring Boot是由Pivotal 团队提供的基于Spring 的全新框架,其设计目的是简化Spring应用的搭建和开发过程。该框架遵循“约定大于配置”原则,采用特定的方式进行配置,从而使开发者无须进行大量的XML配置。Spring Boot致力于成为蓬勃发展的快速应用开发领域的领导者。
Spring Boot并不重复“造轮子”,而是在原有Spring框架的基础上进行封装,并且它集成了一些类库,用于简化开发。换句话说,Spring Boot就是一个大容器。
关于Spring Boot,其官网是这样描述的:
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications thatyou can "just run".
We take an opinionated view of the Spring platform and third-party libraries so you can get startedwith minimum fuss. Most Spring Boot applications need very little Spring configuration.
从上面的描述中,我们可以了解到,Spring Boot带给了我们全新的应用部署方案,通过它可以很方便地创建独立的、生产级的基于Spring的应用程序。同时,通过Spring平台和第三方库可以轻松构建视图。
其实,Spring Boot默认集成了Tomcat,因此我们可以只编译成jar包,通过Java命令启动应用,大多数Spring Boot应用程序只需要很少的Spring 配置。
本节中,我们将创建第一个Spring Boot工程,读者可以按照下面的步骤进行操作。
(1)打开 IntelliJ IDEA,依次点击 File→New→Module,在弹出的对话框中选择Maven,并点击Next按钮,创建一个Maven项目。这里我们在 Artifactld一栏中输入demo-lesson-one,在Groupld一栏中输入com.lynn.boot。创建好工程后,为pom.xml增加以下内容:
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent< / artifactId><version>2.0.3.RELEASE</version>
- </ parent>
- <dependencies>
- <dependency>
- <groupId>org.springframework. boot</groupId>
- <artifactId>spring-boot-starter-web</ artifactId></dependency>
- </dependencies>
其中,<parent>标签声明了Spring Boot 的父项目,版本号定义为2.0.3.RELEASE。我们还可以注意到,<dependencies>标签中声明了spring-boot-starter-web依赖,它提供了对Spring MVC的支持。
(2)编写应用启动类Application:
- package com.lynn.boot;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot. autoconfigure.SpringBootApplication;
- @SpringBootApplication
- public class Application {
- public static void main(String[] args){
- SpringApplication.run(Application.class,args);
- }
- }
Spring Boot 的强大之处在于可以直接通过main方法启动Web应用程序。在上述代码中,我们提供了应用程序的入口,通过调用SpringApplication.run()来启动内置Web容器。我们注意到,在Application类中添加了@SpringBootApplication注解,我们将在2.4节中介绍它的作用。
默认情况下,Spring Boot 内置了Tomcat。当然,它还支持其他容器,如Jetty。倘若我们要将默认容器改为Jetty ,可以将pom.xml文件修改成下面这样:
- <dependency>
- <groupId>org.springframework. boot</groupId>
- <artifactId>spring-boot-starter-web</ artifactId><exclusions>
- <exclusion>
- <groupId>org.springframework . boot</groupId>
- <artifactId>spring-boot-starter-tomcat</ artifactId></exclusion>
- < / exclusions>< / dependency><dependency>
- <groupId>org.springframework .boot</groupId>
- <artifactId>spring-boot-starter-jetty</ artifactId></dependency>
在上述代码中,我们通过<exclusion>标签将Tomcat的依赖包移除,并增加了Jetty 的依赖包。
(3)编写控制器以验证 Spring Boot框架:
- package com. lynn.boot.controller;
- import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;
- @RestController
- public class HelloController f
- @RequestMapping(value = "hello")public String hello(){i
- return "Hello world!";
- }
- }
在上述代码中,@RestController注解指示了该类为控制器类,与它对应的注解是@Controller。@RestController注解相当于@Controller注解和@ResponseBody注解的结合。@RequestMapping注解的作用是定义一个HTTP请求地址,默认不限制请求方式,可以是GET、POST亦或其他方法,如果要限制请求方法,可以在注解后面增加 method 属性,如 method=RequestMethod.GET表示只有GET请求才能调用该HTTP地址。
上面提到的注解均为Spring MVC注解,我们之所以能够在这里很方便地使用Spring MVC注解,是因为第(1)步的依赖中添加了spring-boot-starter-web依赖,该依赖集成了Spring MVC.
(4)运行Application类的main方法,并访问localhost:8080/hello,即可看到如图2-1所示的界面。
通过以上示例,我们可以知道:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。