SpringBoot==>简介

一、SpringBoot 产生背景

  随着动态语言的流行(Ruby,Groovy,Scala,Node.js),Java 的开发显得格外的笨重:繁多的配置,低下的开发效率,复杂的部署流程以及第三方技术集成难度大。

  在上述环境下,Spring Boot应运而生。它使用 ”习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须进行手动配置)的理念让你的项目快速运行起来。使用Spring Boot很容易创建一个独立运行(运行jar,内嵌Servlet容器),准生产级别的Spring框架的项目,使用Spring Boot你可以不使用或者只需要很少的Spring配置。

  相比于以往的一些开发框架,Spring Boot不但使用更加简单,而且功能更加丰富,性能更加稳定而健壮。使用Spring Boot开发框架,不仅能提高开发速度,增强生产效率,一定意义上,可以说是解放了程序员的劳动,一种新技术的使用,更能增强系统的稳定性和扩展系统的性能指标。

二、SpringBoot 简介

  Spring Boot是在Spring框架基础上创建的一个全新的框架,其设计目的是简化 Spring 应用的搭建和开发过程,更加敏捷的开发 Spring应用程序,专注于应用程序的功能, 简化了配置的过程, 甚至不配置。可以通过内嵌Servlet容器(Tomcat/Jetty或Undertow)把 Web 应用程序变成可自执行的JAR文件, 不用部署到传统的容器就能命令行里运行。它不但具有 Spring 的所有优秀特性,而且具有如下四个主要特性,能够改变开发 Spring 应用程序的方式:

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

  Spring Boot 对于一些第三方的技术的使用,提供了非常完美的整合, 使你在简单的使用中,不知不觉运用了非常高级和先进的技术。

三、SpringBoot 优点

  • SpringBoot 使编码变得简单,习惯优于配置,大大提高了开发效率;
  • SpringBoot 使配置变得简单,极简的组件依赖,自动发现与装配(在maven中指定一个starter即可);
  • SpringBoot 使部署变得简单,SpringBoot会自动将 tomcat/Jetty 服务器组建内嵌到当前的工程中,随着SpringBoot的启动,tomcat一并提供服务,SpringBoot编译时,不再提供war包,而是Java中标准的jar包,我们可以将jar包批量上传到服务器,通过服务器端的脚本自动启动,无论是一台还是1000台服务器,通过一个命令就可完成自动部署;
  • SpringBoot使监控变得简单,SpringBoot提供了运行时的应用监控(服务器压力,内存占用,数据库负载),在后台可以监控应用程序的运行情况,提前预防宕机;
  • 与云计算和分布式架构天然集成;
  • 学习成本极低;

四、SpringBoot 环境搭建

1、创建一个 Gradle 工程

2、配置 build.gradle 文件并引入依赖包

buildDir = ‘target‘

apply plugin: ‘org.springframework.boot‘
apply plugin: ‘io.spring.dependency-management‘

buildscript {
    ext {
        springBootVersion = ‘2.1.6.RELEASE‘
    }
    repositories {
        maven {
            url ‘https://plugins.gradle.org/m2/‘
        }
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

sourceSets.main.resources {
    if (project.hasProperty(‘profile‘)) {
        srcDir ‘src/main/resources-‘ + project.profile
        srcDir ‘src/test/resources-‘ + project.profile
    } else {
        srcDir ‘src/main/resources-test‘
        srcDir ‘src/test/resources-test‘
    }
}

clean.doLast {
    delete projectDir.path + ‘/target‘
}

configurations {

}

dependencies {
    implementation(‘org.springframework.boot:spring-boot-starter-web‘)
    implementation(‘org.springframework.boot:spring-boot-devtools‘)
    implementation(‘org.springframework.boot:spring-boot-starter-aop‘)
    testImplementation(‘org.springframework.boot:spring-boot-starter-test‘)
}

build.gradle

配置文件中 dependencies 闭环中的内容就是所引入的依赖包

3、 创建一个入口类

@SpringBootApplication
@EnableScheduling
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

Application

@SpringBootApplication
@EnableScheduling

4、创建控制器

@RestController
@RequestMapping("/ping")
public class PingController {

  /**
   * 自定义配置
   */
  @Value("${info}")
  private String info;

  @RequestMapping(path = "/111",method = RequestMethod.GET)
  public String ping1(Integer id, String name, Integer age){
    System.out.println("user info:" + id + "," + name + "," + age);
    return "pong" + info;
  }

  @RequestMapping(path = "/222",
          method = {RequestMethod.POST,RequestMethod.GET},
          // "application/json;charset=utf-8"
          consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
  public String ping2(){
    return "pong" + info;
  }

  @RequestMapping(path = "/333",
          method = {RequestMethod.POST,RequestMethod.GET})
  public RetMsg ping3(User user){
    System.out.println("user = " + user);
    return RetMsg.buildSuccess();
  }
}

PingController 控制器

@Value
@RestController
@RequestMapping("/ping")

5、启动Application类

直接运行 Application 类中的 main() 方法即可

控制台打印了启动日志,展示了一些启动信息,像:启动时间、默认端口等等,我们使工具发一个Get请求,来看一下结果:

五、application.yml配置

SpringBoot支持两种配置文件:application.yml 和 application.properties,通常我们使用application.yml,下面先记录一些常用配置

server:
  prot: 8888  #配置访问的端口
  servlet:
    context-path: /xxx  #配置访问时的项目名

spring:
  devtools:      
    restart:
      enabled: true  #这个好像是热加载,每次代码有改动就自动重启,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。
  datasource:
    url: jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=UTF-8&useSSL=true  #配置数据库的路径
    username: root  #数据库登录名
    password: root   #登陆密码
    type: com.alibaba.druid.pool.DruidDataSource  #这个可以看一下 https://blog.csdn.net/qq_27191423/article/details/79146855
    driver-class-name: com.mysql.jdbc.Driver
    filters: stat
    maxActive: 20  #连接池的最大值,同一时间可以从池分配的最多连接数量,0时无限制
    initialSize: 1  #连接初始值,连接池启动时创建的连接数量的初始值
    maxWait: 60000
    minIdle: 1  #最小空闲值.当空闲的连接数少于阀值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: select ‘x‘
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true   #是否对已备语句进行池管理(布尔值),是否对PreparedStatement进行缓存
    maxOpenPreparedStatements: 20

    jackson:
      date-format: yyyy-MM-dd HH:mm:ss
      time-zone: GMT+8

mybatis-plus:
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.yudao.platform.entity.*
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 0
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: false
    #刷新mapper 调试神器
    refresh-mapper: true
    #数据库大写下划线转换
    #capital-mode: true
    # Sequence序列接口实现类配置
    #key-generator: com.baomidou.mybatisplus.incrementer.OracleKeyGenerator
    #逻辑删除配置
    logic-delete-value: 1
    logic-not-delete-value: 0
    #自定义填充策略接口实现
    #meta-object-handler: com.baomidou.springboot.xxx
    #自定义SQL注入器
    # sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true

application.yml 配置

我们将 tomcat 端口配为 9000,再将项目路径配为 /spring-boot 后再次启动

发送请求时就需要把端口和路径稍作修改

六、常用功能

1、定时任务

2、热部署

七、整合

1、Junit

2、Mybatis

原文地址:https://www.cnblogs.com/L-Test/p/11616490.html

时间: 2024-11-09 10:09:20

SpringBoot==>简介的相关文章

一、springBoot简介与环境搭建

前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBoot简单综合案例 一.springBoot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置(约定优于配置),从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力

SpringBoot简介

本系列推文通过详细的对springboot的各个技能点逐一介绍与演示,可以很迅速的熟悉整个springboot框架体系,并且与springmvc有效的进行对比,理解异同,这样对于后续的springboot开发会非常迅速.同时会针对不同的技术点进行不同的应用场景的讲解,使得读者更好的理解未来自己做项目中如何运用. 目前大部分公司已经逐步的使用微服务架构进行项目开发,类似Spring Cloud或者阿里的Dubbo,而Spring Boot正是微服务的基础层,首先我们了解下Spring Boot:

springboot2.0入门(一)----springboot 简介

一.springboot解决了什么? 避免了繁杂的xml配置,框架自动帮我们完成了相关的配置,当我们需要进行相关插件集成的时候,只需要将相关的starter通过相关的maven依赖引进,并可以进行相关的插件整合开发, 当然,springboot简化了开发的流程,当我们需要插件的其他版本也可以使用自己的配置,但是需要对spring以及相关框架很熟悉,所以,高楼平地起,基础的框架和插件也是需要我们深入学习的: 总的来说 :springboot使配置.部署.监控.开发都变得相对简单. 二.spring

SpringBoot简介以及案例

1什么是SpringBoot Spring Boot 是所有基于 Spring 开发的项目的起点.Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件.简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适). 2.2.SpringBoot四个主要特性 1.SpringBoot Starter:他将常用的依赖分组进

springboot 整合 MongoDB 实现登录注册,html 页面获取后台参数的方法

springboot简介: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. MongoDB的简介: MongoDB 是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据

SpringBoot 入门 Demo

SpringBoot   入门 Demo Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. 特点 1. 创建独立的Spring应用程序 2. 嵌入的Tomcat,无需部署WAR文件 3. 简化Maven配置

SpringBoot学习记录(一)

一.SpringBoot入门 1.SpringBoot简介 简化Spring应用开发的一个框架:整个Spring技术栈的一个大整合:J2EE开发的一站式解决方案: SpringBoot的优点: (1) 快速创建独立运行的Spring项目以及主流框架集成 (2) 使用嵌入式的Servlet容器,应用无需打成war包 (3) starters自动依赖与版本控制 (4) 大量的自动配置,简化开发,也可修改默认值 (5) 无需配置xml,无代码生成,开箱即用 (6) 准生成环境的运行时应用监控 (7)

Springboot 入门及Demo

一:SpringBoot入门1.1:SpringBoot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.听说Springboot可以在140个字符以内发布一个web应用.1.2:SpringBoot特性 1. SpringBoot并不是对Spring功能上的增强,而是提供了一种快速创建独立的Spring应用程序的框架2. 嵌入的Tomcat,无需

【学习】019 SpringBoot

一.SpringBoot介绍 1.1.SpringBoot简介 在您第1次接触和学习Spring框架的时候,是否因为其繁杂的配置而退却了?在你第n次使用Spring框架的时候,是否觉得一堆反复黏贴的配置有一些厌烦?那么您就不妨来试试使用Spring Boot来让你更易上手,更简单快捷地构建Spring应用! Spring Boot让我们的Spring应用变的更轻量化.比如:你可以仅仅依靠一个Java类来运行一个Spring引用.你也可以打包你的应用为jar并通过使用java -jar来运行你的S