读书笔记《SpringBoot编程思想》

一、 springboot总览

1.springboot特性

  • 独立的spring应用
    springboot可以以jar包的形式独立运行,使用 java -jar xxx.jar就可以成功运行项目,
  • 内嵌servlet容器
    使我们在应用项目的主程序中运行main函数即可快速运行。
  • 内嵌web容器
    直接嵌入tomcat、jetty等web容器(不需要部署war文件)
  • 提供固话的starter依赖
    简化maven配置,使常见的依赖聚集在一起,形成单条依赖
  • 组件自动装配
    Spring Boot会根据我们项目中类路径的jar包/类,为jar包的类进行自动配置Bean,大大简化了配置
  • 应用监控
    springboot提供了基于HTTP、ssh、telnet对运行时的项目进行监控。
  • 不需要配置xml
    可以完全不使用xml配置,只需要自动配置和Java config

2.准备运行环境

  • JDK1.8
  • MAVEN

二、理解独立的spring应用

1.应用类型

  • 非web应用 : 主要用于服务提供、调度任务、消息处理
  • web应用 : 内嵌servlet或web容器,对外提供HTTP服务

2.@RestController

  • @RestController注解用作类的请求控制
  • @RequestMapping注解用作方法的请求映射
  • @ResponseBody注解用作方法的返回对象映射
  • 当有@RestController注解时,不需要添加@ResponseBody注解,可以认为@RestController= @Controller + @ResponseBody

3.官网创建springboot应用

https://start.spring.io/

4.基础的start依赖

  • spring-boot-starter-parent : srpingboot的父级依赖
    • 默认使用java8,也可手动添加指定版本
    <properties>
        <java.version>1.8</java.version>
    </properties>
    
    • 默认使用UTF-8编码,可手动添加配置修改
    <properties>
        <project.build.sourceEncoding>GBK</project.build.sourceEncoding>
    </properties>
    
    • 省略version信息,可不指定version
    • 识别插件配置
      比如 exec plugin, surefire
      能够识别 application.properties 和 application.yml 类型的文件

5.springboot打包

  • 构建jar文件前提,需要在spring-boot-maven-plugin到pom.xml中
  • Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件当运行“mvn package”进行打包时,会打包成一个可以直接运行的 JAR 文件,使用“java -jar”命令就可以直接运行
  • 可以在POM中,指定生成 的是Jar还是War jar 默认为jar
  • spring-boot-maven-plugin的命令
    • spring-boot:repackage,默认goal。在mvn package之后,再次打包可执行的jar/war
    • spring-boot:run,运行Spring Boot应用,与java -jar xxx.jar命令无异

6.springboot的jar文件

  • springboot的fat jar文件除了包含传统的java jar中的资源外,还包含依赖的jar文件,他是一个独立归档的应用文件
  • jdk默认支持文件(file)、http、jar等协议,故jdk内建了对应协议的实现,这些实现类均放在sun.net.www.protocol包下,并且类名必须为Handler,
    • FILE:sun.net.www.protocol.file.Handler
    • JAR:sun.net.www.protocol.jar.Handler
    • HTTP:sun.net.www.protocol.http.Handler
    • HTTPS:sun.net.www.protocol.https.Handler
    • FTP:sun.net.www.protocol.ftp.Handler
  • 以上这些类均为java.net.URLStreamHandler的实现类,如果需要扩展springboot的启动jar文件,则需要把org.springframework.boot.loader.jar.Handler添加到java.protocol.handler.pkgs中,并覆盖原sun.net.www.protocol.jar.Handler

三、理解固话的Maven依赖

1.spring-boot-starter-parent与spring-boot-dependencies

  • spring-boot-starter-parent继承于spring-boot-dependencies,也就是说spring-boot-starter-parent的管理jar包的能力源于spring-boot-dependencies
  • 如果不想使用spring-boot-starter-parent来实现dependencyManagement(依赖管理),而是通过自己手动指定jar包的版本号,可通过以下配置spring-boot-dependencies来为每个jar包设置依赖
  • 如果通过spring-boot-dependencies来管理依赖,那么不能使用property的形式覆盖原始的依赖项,要达到同样的效果,需要在dependencyManagement里面的spring-boot-dependencies之前添加依赖的东西
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>Fowler-SR2</version>
            <scope>import</scope>
            <type
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值