spring boot 实战笔记(一)----认识spring boot

一 spring boot与spring

   spring boot在最近几年很火,好多公司也陆陆续续使用spring boot框架。那么相比于之前普遍使用的spring框架有什么本质上的优势呢?首先,Spring诞生时是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。比如我们在使用spring mvc(视图)的时候,除了配置spring-mvc.xml之外,我们还需要对web.xml进行Spring的 DispatcherServlet 。所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

  spring boot 弥补了spring配置上的缺点,其最主要有以下四个核心:

  • 1.自动配置:针对很多Spring应用程序常见的应用功能,Spring Boot能自动提供相关配置。

举例:假设你用spring配置一个嵌入式H2数据库作为 DataSource Bean,完成这个配置场景的代码大概是这样的:

@Bean
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.addScripts('schema.sql', 'data.sql')
.build();
}

这个Bean配置方法创建了一个嵌入式数据库,并指定在该数据库上执行两段SQL脚本。 build()方法返回了一个指向该数据库的引用。如果用Spring Boot在应用程序的Classpath里发现H2数据库的库,那么它就自动配置一个嵌入式H2数据库。如果在Classpath里发现JdbcTemplate ,那么它还会为你配置一个 JdbcTemplate 的Bean。你无需操心那些Bean的配置,Spring Boot会做好准备,随时都能将其注入到你的Bean里

  • 2.起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的库。

我们在使用spring之前都会导入相关的jar包依赖,如果少一个包,就会报错,此时你要花费时间去想到底需要哪些jar包,这样会很麻烦,但是我们用springboot的时候,如果你想使用spring mvc的功能,那么你直接添加spring-boot-starter-web依赖即可。因为它集成了所有的web的jar依赖。起步依赖其实就是特殊的Maven依赖和Gradle依赖,利用了传递依赖解析,把常用库聚合在一起,组成了几个为特定功能而定制的依赖。

  • 3.命令行界面:这是Spring Boot的可选特性,借此你只需写代码就能完成完整的应用程序,无需传统项目构建。

Spring Boot CLI让只写代码即可实现应用程序成为可能。利用了起步依赖和自动配置,让你专注于代码本身。说得简单一点,CLI能检测到你使用了哪些类,它知道要向Classpath中添加哪些起步依赖才能让它运转起来。一旦那些依赖出现在Classpath中,一系列自动配置就会接踵而来

  • 4.Actuator:让你能够深入运行中的Spring Boot应用程序,一探究竟。每一个特性都在通过自己的方式简化Spring应用程序的开发。

Spring Boot的最后一块“拼图”是Actuator,其他几个部分旨在简化Spring开发,而Actuator
则要提供在运行时检视应用程序内部情况的能力

二 安装spring boot cli

我这里使用的是windows系统,并且是手动安装,很简单,下载、解压,随后将它的bin目录添加到系统路径里。跟配置jdk的环境变量一样。下载地址:spring boot cli下载

三 spring boot 初始化项目

spring boot 初始化项目有多种,这里主要展示三种方式:

1.Spring Initializr 初始化 Spring Boot 项目

要使用Spring Initializr,最直接的办法就是用浏览器打开http://start.spring.io,你可以看到下面的表单。

填写你的项目信息,注意后面会有个search for dependencies信息,可以添加你指定的依赖,如果找不到你要的依赖,点击“Switch to the full version”就能看到可用依赖的完整列表。

点击创建项目,导入eclipse,你会看到项目的结构如下图

2.利用spring boot cli创建

我们可以用前面安装的spring boot cli来创建项目。首先你新建一个项目存放的路径,也就是工作空间。我这里创建的是spring-boot-workplace

1.使用dos命令,cd spring-boot-workplace 进入工作空间

2.使用spring init --dependencies=web spring-boot-app指令创建一个名为spring-boot-app的web项目,进入spring-boot-workplace你可以看到这个项目

3.导入eclipse,点击打开DemoApplication.java,加入如下代码模拟应用

package com.example.springbootapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class DemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
	@RequestMapping("/hello")
	String helloworld() {
	  return "Hello World";
	}
}

4.再次打开dos,输入命令:mvn spring-boot:run。首次执行时,maven会先下载依赖仓库,下载后开始启动应用

注意:如果你没配置maven的setting.xml文件,指令执行会报错,你需要在setting.xml中添加如下代码:

	<profile>    
        <id>jdk-1.8</id>    
        <activation>    
            <activeByDefault>true</activeByDefault>    
            <jdk>1.8</jdk>    
        </activation>    
    <properties>    
    <maven.compiler.source>1.8</maven.compiler.source>    
    <maven.compiler.target>1.8</maven.compiler.target>    
    <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>    
    </properties>    
    </profile> 
    
    <profile> 
    <repositories>
    <repository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
    </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
        <id>spring-releases</id>
        <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
    </profile>
  </profiles>

5.测试

如果启动出现spring的图形文字,没报错,证明启动成功,输入http://localhost:8080/hello

3.利用Spring Tool Suite创建项目

下载Spring Tool Suite。

解压打开exe,然后在File菜单里选中New > Spring StarterProject菜单项,随后Spring Tool Suite会显示一个如下对话框

然后根据自己的需要勾选生成

注意:你必须认识到一点,Spring Tool Suite的Spring Starter Project对话框,其实是把项目生成的工作委托给http://start.spring.io上的SpringInitializr来做的,因此必须联网才能使用这一功能。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot实战(第4版)清晰文字版,第 1 章 入门 ................................................ 1 1.1 Spring 风云再起 ........................................ 1 1.1.1 重新认识 Spring ............................ 2 1.1.2 Spring Boot 精要 ........................... 3 1.1.3 Spring Boot 不是什么 ................... 6 1.2 Spring Boot 入门 ....................................... 6 1.2.1 安装 Spring Boot CLI .................... 7 1.2.2 使用 Spring Initializr 初始化 Spring Boot 项目 .......................... 10 1.3 小结 ......................................................... 18 第 2 章 开发第一个应用程序 .................... 19 2.1 运用 Spring Boot ..................................... 19 2.1.1 查看初始化的 Spring Boot 新项目 .......................................... 21 2.1.2 Spring Boot 项目构建过程 解析 .............................................. 24 2.2 使用起步依赖 .......................................... 27 2.2.1 指定基于功能的依赖 ................... 28 2.2.2 覆盖起步依赖引入的传递依赖 .... 29 2.3 使用自动配置 .......................................... 30 2.3.1 专注于应用程序功能 ................... 31 2.3.2 运行应用程序 .............................. 36 2.3.3 刚刚发生了什么 ........................... 38 2.4 小结 ......................................................... 41 第 3 章 自定义配置 .................................... 42 3.1 覆盖 Spring Boot 自动配置 ..................... 42 3.1.1 保护应用程序 .............................. 43 3.1.2 创建自定义的安全配置 ............... 44 3.1.3 掀开自动配置的神秘面纱 ........... 48 3.2 通过属性文件外置配置 ........................... 49 3.2.1 自动配置微调 .............................. 50 3.2.2 应用程序 Bean 的配置外置 ......... 55 3.2.3 使用 Profile 进行配置 .................. 59 3.3 定制应用程序错误页面 ........................... 62 3.4 小结 ......................................................... 64 第 4 章 测试 ............................................... 66 4.1 集成测试自动配置 .................................. 66 4.2 测试 Web 应用程序 ................................. 68 4.2.1 模拟 Spring MVC ........................ 69 4.2.2 测试 Web 安全 ............................. 72 4.3 测试运行中的应用程序 ........................... 74 4.3.1 用随机端口启动服务器 ............... 75 4.3.2 使用 Selenium 测试 HTML 页面 ............................................. 76 4.4 小结 ......................................................... 78 第 5 章 Groovy 与 Spring Boot CLI ......... 80 5.1 开发 Spring Boot CLI 应用程序 .............. 80 5.1.1 设置 CLI 项目 .............................. 81 5.1.2 通过 Groovy 消除代码噪声 ......... 81 5.1.3 发生了什么 .................................. 85 5.2 获取依赖 .................................................. 86 5.2.1 覆盖默认依赖版本 ....................... 87 5.2.2 添加依赖仓库 .............................. 88 5.3 用 CLI 运行测试 ...................................... 89 5.4 创建可部署的产物 .................................. 91 5.5 小结 ......................................................... 91 第 6 章 在 Spring Boot 中使用 Grails ...... 93 6.1 使用 GORM 进行数据持久化 ................. 93 2 目 录 6.2 使用 Groovy Server Pages 定义视图 ....... 98 6.3 结合 Spring Boot 与 Grails 3 ................. 100 6.3.1 创建新的 Grails 项目 ................. 100 6.3.2 定义领域模型 ............................ 103 6.3.3 开发 Grails 控制器 ..................... 104 6.3.4 创建视图 .................................... 105 6.4 小结 ....................................................... 107 第 7 章 深入 Actuator .............................. 108 7.1 揭秘 Actuator 的端点 ............................ 108 7.1.1 查看配置明细 ............................ 109 7.1.2 运行时度量 ................................ 115 7.1.3 关闭应用程序 ............................ 121 7.1.4 获取应用信息 ............................ 121 7.2 连接 Actuator 的远程 shell .................... 122 7.2.1 查看 autoconfig 报告 ........... 123 7.2.2 列出应用程序的 Bean ............... 124 7.2.3 查看应用程序的度量信息 ......... 124 7.2.4 调用 Actuator 端点 .................... 125 7.3 通过 JMX 监控应用程序 ....................... 126 7.4 定制 Actuator......................................... 128 7.4.1 修改端点 ID ............................... 128 7.4.2 启用和禁用端点 ........................ 129 7.4.3 添加自定义度量信息 ................. 129 7.4.4 创建自定义跟踪仓库 ................. 132 7.4.5 插入自定义健康指示器 ............. 134 7.5 保护 Actuator 端点 ................................ 136 7.6 小结 ....................................................... 138 第 8 章 部署 Spring Boot 应用程序 ........ 139 8.1 衡量多种部署方式 ................................ 139 8.2 部署到应用服务器 ................................ 140 8.2.1 构建 WAR 文件 ......................... 141 8.2.2 创建生产 Profile ........................ 142 8.2.3 开启数据库迁移 ........................ 145 8.3 推上云端 ............................................... 150 8.3.1 部署到 Cloud Foundry ............... 150 8.3.2 部署到 Heroku ........................... 153 8.4 小结 ....................................................... 155 附录 A Spring Boot 开发者工具.............. 157 附录 B Spring Boot 起步依赖 ................. 163 附录 C 配置属性 ...................................... 169 附录 D Spring Boot 依赖 ......................... 202
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值