SpringBoot学习笔记(一):SpringBoot介绍与入门案例

一、SpringBoot简介

1、SpringBoot介绍

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,并且尽可能减少的配置文件,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

SpringBoot四个主要特性:

  • SpringBoot Starter:他将常用的依赖分组进行了整合,将其合并到一个依赖中,这样就可以一次性添加到项目的Maven或Gradle构建中;
  • 自动配置:SpringBoot的自动配置特性利用了Spring4对条件化配置的支持,合理地推测应用所需的bean并自动化配置他们;
  • 命令行接口:(Command-line-interface, CLI):SpringBoot的CLI发挥了Groovy编程语言的优势,并结合自动配置进一步简化Spring应用的开发;
  • Actuatir:它为SpringBoot应用的所有特性构建一个小型的应用程序。但首先,我们快速了解每项特性,更好的体验他们如何简化Spring编程模型。

2、SpringBoot 的核心功能 

(1)独立运行的 Spring 项目 

SpringBoot 可以通过 jar 包的形式独立运行,运行一个SpringBoot项目只需要通过 java -jar xx.jar。 

(2)内置 Servlet 容器 

Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样无须以 war 包形式部署。 

(3)提供 starter 简化 maven 配置 

Spring 提供了一系列的 starter pom 来简化 maven 依赖加载,例如:当使用了 springboot-starter-web 时,会自动加入相关依赖,无需手动的添加每个坐标依赖。 

(4)自动配置 Spring 

Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,SpringBoot 只是考虑了大多数的开发场景,并不是所有场景,若在实际开发中,我们需要自动配置bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。 

(5)无代码生成和 xml 配置 

SpringBoot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性,Spring 4.x 提倡使用 java 配置和注解配置相结合,而 SpringBoot 不需要任何 xml 配置即可实现 SpingBoot 的所有配置。

3、SpringBoot的特点

  • 为所有 Spring 的开发者提供一个非常快速的、广泛接受的入门体验
  • 开箱即用(启动器starter-其实就是SpringBoot提供的一个jar包),但通过自己设置参数(.properties),即可快速摆脱这种方式。
  • 提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等
  • SpringBoot不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式

4、SpringBoot的优缺点

(1)优点:

  • 快速构建项目:省略了繁琐且重复的 xml 配置,分分钟构建一个 web 工程。
  • 对主流开发框架的无配置集成:提供了很多 Starter 依赖包,开箱即用,无需多余配置。
  • 项目可独立运行:无需外部依赖 Servlet 容器。
  • 极大地提供了开发、部署效率。
  • 监控简单:提供了 actuator 包,可以使用它来对你的应用进行监控。 

(2)缺点:

  • 依赖太多:一个简单的 SpringBoot 应用都有好几十 M 只有。
  • 缺少监控集成方案、安全管理方案:只提供基础监控,要实现生产级别的监控,监控方案需要自己动手解决

二、入门案例

1、SpringBoot+maven构建helloworld。

(1)创建maven工程SpringBootHelloWorld。

(2)在pom.xml中引入依赖包。

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
  </parent>
  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
  </dependencies>

(3)在controller创建HelloController。

@Controller
public class HelloController {
    @ResponseBody
    @RequestMapping("/hello")
    public String hello(){
        return "hello SpringBoot";
    }
}

(4)在com.yht下创建HelloApplication。

@SpringBootApplication
public class HelloApplication {
    public static void main( String[] args ) {
        SpringApplication.run(HelloApplication.class);
    }
}

(5)启动程序,在浏览器地址栏输入:http://localhost:8080/hello,页面返回结果如下:

扩展:将SpringBoot项目打成jar包。

a.在pom.xml加入配置如下:

 <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

 b.点击package。

c.target中会生成一个.jar包,如下:

d.找到对应的jar包路径下,通过java -jar 名字即可运行成功 。

2、Spring Initializr 创建SpringBoot项目。

(1)选择Spring Initializr,指定JDK版本,点击next。

(2)填写下图中的参数,点击next。

参数说明 : 

参数 说明
Group 一般为逆向域名格式
Artifact 唯一标识,一般为项目名称具体 maven 相关信息,可自行搜索
Type 项目类型 此处选择maven project
Language 编程语言
Packaging 打包类型  
Java Version jdk  版本 
Version 项目版本号 
Name 项目名称
Description 项目描述 
Package

包名,一般默认

(3)选择依赖包和SpringBoot的版本,点击next。 

(4) 填写项目名称 ,然后选择项目本地存放路径,点击finish。

(5)项目创建成功,创建HelloController。

@RestController
public class HelloController {
    @RequestMapping("/hello")
    public String hello(){
        return "hello SpringBoot Quick";
    }
}

项目目录结构如下:

resources下文件目录的说明:

  • static:保存所有的静态资源,包括:js、image、css。
  • templates:保存所有的模板页面,如:freemarker、thymeleaf。
  • application.properties:SpringBoot的配置文件。springboot 默认的端口号为:8080,如果修改默认端口号时及上下文路径时,只需要在 application.properties或者application.yml设置即可,后面讲进行详解。 

(6)启动项目,在浏览器地址栏输入:http://localhost:8080/hello。页面返回数据如下:

 

猜你喜欢

转载自blog.csdn.net/weixin_47382783/article/details/114013752