疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Spring Boot入门篇


 

 
1 Spring Boot的概述
Spring Boot是开发者和Spring 本身框架的中间层,帮助开发者统筹管理应用的配置,提供基于实际开发中常见配置的默认处理(即习惯优于配置),简化应用的开发,简化应用的运维;总的来说,其目的Spring Boot就是为了对Java web 的开发进行“简化”和加“快”速度,简化开发过程中引入或启动相关Spring 功能的配置。这样带来的好处就是降低开发人员对于框架的关注点,可以把更多的精力放在自己的业务代码上。
同时随着微服务概念的推广和实践,Spring Boot的精简理念又使其成为Java微服务开发的不二之选,也可以说,Spring Boot其实就是为了微服务而生的Java web框架。现如今,Spring Boot已经在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
2 Spring Boot的核心功能
可独立运行的Spring项目:Spring Boot可以以jar包的形式独立运行。
内嵌的Servlet容器:Spring Boot可以选择内嵌Tomcat、Jetty或者Undertow,无须以war包形式部署项目。
简化的Maven配置:Spring提供推荐的基础 POM 文件来简化Maven 配置。
自动配置Spring:Spring Boot会根据项目依赖来自动配置Spring 框架,极大地减少项目要使用的配置。
提供生产就绪型功能:提供可以直接在生产环境中使用的功能,如性能指标、应用信息和应用健康检查。
无代码生成和xml配置:Spring Boot不生成代码。完全不需要任何xml配置即可实现Spring的所有配置。
Spring Boot整合了诸多技术框架,通过配置即可自动关联以及配置与其他框架整合。
使用微信公众号编辑器有一个十分头疼的问题——粘贴出来的代码,格式错乱,而且特别丑。这块编辑器能够解决这个问题。
 
3.入门案例
(1)在Eclipse开发工具中整合Maven(读者亦可联系作者获取Maven框架使用的教程)(2)在Eclipse中新建一个Mavan的web项目,取名为hellotest
 
(3)在pom.xml文件中加入如下配置:
<!-- 加入本配置意味着Spring Boot会自动选择合适的-->
<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>1.5.6.RELEASE</version>
</parent>
 
构建基于Spring Boot的应用首先必须要将元素设置为spring boot的spring-boot-starter-parent,spring-boot-starter-parent是Spring Boot的核心启动器,包含了自动配置、日志和YAML等大量默认的配置,大大简化了我们的开发。元素建议使用最新的 RELEASE 版本,之后的spring boot模块(如spring-boot-starter-web模块)都会自动选择最合适的版本进行添加,后续的配置基本无需程序员自己制定版本号了。(4)在pom.xml文件中加入如下配置:
<!-- 加入本配置意味着Spring Boot会自动选择合适的-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
Spring Boot中包含了很多的starter模块,简单的说,每一个starter模块就是一系列的依赖包组合。例如starter-web模块,就是包含了Spring Boot预定义的一些Web开发的常用依赖包,支持全栈式Web开发,包括Tomcat和spring-webmvc,同时Spring Boot会进行自动配置集成SpringMVC。由于指定了spring-boot-starter-parent,所以此处的web starter模块不需要指定版本,Spring Boot会自动选择最合适的版本进行添加。修改完成之后的pom.xml文件内容如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>org.fkit.springboot</groupId>
  <artifactId>hellotest</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>
  <name>hellotest</name>
  <url>http://maven.apache.org</url>
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.6.RELEASE</version>
   </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
      </dependency>
    </dependencies>
</project>
 
pom.xml文件修改保存后,Maven会自动下载所需要的所有jar文件,速度取决于读者网络。(5)编写测试代码a.写一个简单的Java类HelloController。
// 程序清单:codes/01/hellotest/org/fkit /hellotest/HelloController.java
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
// RestController相当于SpringMVC中的 @Controller + @ResponseBody
@RestController
public class HelloController {
    // 映射"/hello"请求
    @RequestMapping("/hello")
    public String hello(){
        return " Hello Spring Boot!";
    }
}
HelloController 类上使用的@RestController注解是一个组合注解,相当于SpringMVC中的@Controller+@ResponseBody合在一起的作用。表明这个请求返回字符串“hello”。
 
b.修改Maven默认的App类。
// 程序清单:codes/01/hellotest/org/fkit/hellotest/App.java
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
// @SpringBootApplication指定这是一个 spring boot的应用程序.
@SpringBootApplication
public class App
{
    public static void main( String[] args )
    {
        // SpringApplication 用于从main方法启动Spring应用的类。
        SpringApplication.run(App.class, args);
    }
}
 
App类使用的@ SpringBootApplication注解指定这是一个 spring boot的应用程序,该注解也是一个组合注解,相当于@Configuration + @EnableAutoConfiguration + @ComponentScan,具体在后续《Spring Boot的核心》重点讲解。SpringApplication类 用于从main方法启动Spring应用的类。此处直接调用静态的run方法。c.启动Spring Boot项目,右键执行App.java类运行main方法。d.测试应用Spring Boot项目启动后,默认访问地址为:http://localhost:8080/,按照之前的web项目习惯,读者可能会问,怎么没有项目路径?这就是Spring Boot的默认设置了,将项目路径直接设为根路径。在浏览器输入URL来测试应用。
http://localhost:8080/hello