请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术发帖,必有回复! 做最受欢迎的Java论坛

疯狂Java联盟

 找回密码
 加入联盟
查看: 155|回复: 1

《01.Spring Boot实战:Spring Boot入门篇》

  [复制链接]
发表于 2017-11-20 21:44:40 | 显示全部楼层 |阅读模式
本帖最后由 Dlei 于 2017-11-23 22:54 编辑

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

图1.7 Maven项目结构.png

(3)在pom.xml文件中加入如下配置:

  1. <!-- 加入本配置意味着Spring Boot会自动选择合适的-->
  2. <parent>
  3.    <groupId>org.springframework.boot</groupId>
  4.    <artifactId>spring-boot-starter-parent</artifactId>
  5.    <version>1.5.6.RELEASE</version>
  6. </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文件中加入如下配置:
  1. <!-- 加入本配置意味着Spring Boot会自动选择合适的-->
  2. <dependency>
  3.     <groupId>org.springframework.boot</groupId>
  4.     <artifactId>spring-boot-starter-web</artifactId>
  5. </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文件内容如下:

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  3.   <modelVersion>4.0.0</modelVersion>
  4.   <groupId>org.fkit.springboot</groupId>
  5.   <artifactId>hellotest</artifactId>
  6.   <version>0.0.1-SNAPSHOT</version>
  7.   <packaging>jar</packaging>
  8.   <name>hellotest</name>
  9.   <url>http://maven.apache.org</url>
  10.    <parent>
  11.         <groupId>org.springframework.boot</groupId>
  12.         <artifactId>spring-boot-starter-parent</artifactId>
  13.         <version>1.5.6.RELEASE</version>
  14.    </parent>
  15.     <properties>
  16.         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17.     </properties>
  18.     <dependencies>
  19.         <dependency>
  20.             <groupId>org.springframework.boot</groupId>
  21.             <artifactId>spring-boot-starter-web</artifactId>
  22.     </dependency>
  23.     <dependency>
  24.           <groupId>junit</groupId>
  25.           <artifactId>junit</artifactId>
  26.           <version>3.8.1</version>
  27.           <scope>test</scope>
  28.       </dependency>
  29.     </dependencies>
  30. </project>
复制代码

pom.xml文件修改保存后,Maven会自动下载所需要的所有jar文件,速度取决于读者网络。(5)编写测试代码a.写一个简单的Java类HelloController。

  1. // 程序清单:codes/01/hellotest/org/fkit /hellotest/HelloController.java
  2. import org.springframework.web.bind.annotation.RequestMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. // RestController相当于SpringMVC中的 @Controller + @ResponseBody
  5. @RestController
  6. public class HelloController {
  7.     // 映射"/hello"请求
  8.     @RequestMapping("/hello")
  9.     public String hello(){
  10.              return " Hello Spring Boot!";
  11.     }
  12. }
  13. HelloController 类上使用的@RestController注解是一个组合注解,相当于SpringMVC中的@Controller+@ResponseBody合在一起的作用。表明这个请求返回字符串“hello”。
复制代码

b.修改Maven默认的App类。

  1. // 程序清单:codes/01/hellotest/org/fkit/hellotest/App.java
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. // @SpringBootApplication指定这是一个 spring boot的应用程序.
  5. @SpringBootApplication
  6. public class App
  7. {
  8.     public static void main( String[] args )
  9.     {
  10.         // SpringApplication 用于从main方法启动Spring应用的类。
  11.         SpringApplication.run(App.class, args);
  12.     }
  13. }
复制代码

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

结果如下:

图1.8 访问项目.png

如有疑问请与读者联系,Spring Boot目前十分后热,后续将继续更新。


发表于 2017-11-20 21:58:18 | 显示全部楼层
Spring Boot目前确实很热,
还有Spring cloud
Spring家族的产品很强大
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

视频、代码、电子书下载
请关注"疯狂图书"公众号
QQ交流1群: 545923995  未满

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11063141号 )

GMT+8, 2017-12-18 20:32 , Processed in 0.330114 second(s), 7 queries , File On.

快速回复 返回顶部 返回列表