爱生活,爱编码,微信搜一搜[架构技术专栏]关注这个喜欢分享的地方.本文 架构技术专栏 已收录,有各种JVM.多线程.源码视频.资料以及技术文章等你来拿. 一.概述 目前Spring Boot已经发展到2.3.4.RELEASE ,对于它的好处网上也是铺天盖地的,这里就不再重复了.直接说重点,从Spring Boot1.x一步步跟着迭代升级到现在的2.3.4也是遇到了很多的坑,了解其新版本的特性是非常重要的,可以帮助我们避免很多不必要的麻烦. 因为我也一直在搞基于Spring Boot技术栈的组件…
目录: 一.抛砖引玉:探索Spring IoC容器 1.1.Spring IoC容器 1.2.Spring容器扩展机制 二.夯实基础:JavaConfig与常见Annotation 2.1.JavaConfig 2.2.@ComponentScan 2.3.@Import 2.4.@Conditional 2.5.@ConfigurationProperties与@EnableConfigurationProperties 三.削铁如泥:SpringFactoriesLoader详解 四.另一件…
在过去两三年的Spring生态圈,最让人兴奋的莫过于Spring Boot框架.或许从命名上就能看出这个框架的设计初衷:快速的启动Spring应用.因而Spring Boot应用本质上就是一个基于Spring框架的应用,它是Spring对"约定优先于配置"理念的最佳实践产物,它能够帮助开发者更快速高效地构建基于Spring生态圈的应用. 那Spring Boot有何魔法?自动配置.起步依赖.Actuator.命令行界面(CLI) 是Spring Boot最重要的4大核心特性,其中CLI…
https://mp.weixin.qq.com/s/q8OI2Ou8-gYP-usjToBbkQ…
最近有意重新学习下SpringBoot知识,特地总结了SpringBoot的知识点,对于想要学习的人来说,够用. SpringBoot学习路径 第一部分:了解 Spring Boot Spring Boot 概述 从零开始学习 Spring Boot 的开发环境IntelliJ IDEA Spring Boot 特性及Spring Boot 2.0新特性 Spring Boot Maven 介绍 Spring Boot 快速入门 开发你的第一个Spring Boot Web项目 学习三部曲 创建…
一.使用Maven手工创建SpringBoot应用(IDEA) 1.  点击File——New——Project——Maven——Next,填写相关信息,创建项目. 2.  在pom.xml中添加相关依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.…
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Spring Boot 版本:2.2.x 最好对 Spring 源码有一定的了解,可以先查看我的 <死磕 Spring 之 IoC 篇 - 文章导读> 系列文章 如果该篇内容对您有帮助,麻烦点击一下"推荐",也可以关注博主,感激不尽~ 该系列其他文章请查看:<精尽 Spring B…
一.pom.xml中添加相关依赖 <!-- 引入starter--> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.2</version> <scope>runtime</scope> <…
Spring boot 提供了两种常用的配置文件,properties和yml文件. 1.yml yml是YAML(YAML Ain't Markup Language)语言的文件,以数据为中心,比json.xml等更适合做配置文件. 使用空格 Space 缩进表示分层,不同层次之间的缩进可以使用不同的空格数目 注意:key后面的冒号,后面一定要跟一个空格,树状结构 server: port: 8090 session-timeout: 30 tomcat.max-threads: 0 tomc…
热部署原理: 使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间. 官方地址:https://docs.spring.io/spring-boot/docs/2.1.0.BUILD-…
从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区.我的博客和我的公号内.粗略的统计了一下总共的文章加起来大概有六十多篇了,其中一部分是在技术社区做的系列课程. 我在写文章的时候将文章中的示例提取出来,作为开源代码分享了出来让大家以更方便的方式去学习(https://github.com/ityouknow/spring-boot-examples),现在在 Gihub 上面也将近有4000个 Star,按照 Spring…
run方法 run方法主要创建和初始化ConfigurableApplicationContext,在各个节点调用SpringApplicationRunListener的回调函数,在发送异常时调用用户自定义SpringBootExceptionReporter.调用ApplicationRunner和CommandLineRunner的run方法. public static ConfigurableApplicationContext run(Class<?>[] primarySourc…
一.pom.xml中引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 二.application.properties增加相关配置 #开发时关闭缓存,不然没法看到实时页面spring.thymeleaf.cache=falsesp…
一.定时任务 1.启动类里面增加注入 @SpringBootApplication //@SpringBootApplication = @Configuration+@EnableAutoConfiguration+@ComponentScan @Configuration @ServletComponentScan //扫描过滤器等servlet.filter注解 @MapperScan("net.Eleven.demo.Mapper") //扫描对应的Mapper文件 @Enab…
一.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency> 二.可以使用默认的配置,如有需要可以在application.properties中增加 三.新建操作redis的controller package net.Eleven…
一.本机搭建zookeeper伪集群 1.下载安装包,复制三份 2.每个安装包目录下面新建一个data文件夹,用于存放数据目录 3.安装包的conf目录下,修改zoo.cfg配置文件 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit=5 # The number of ti…
续上篇,补充数据库增删改查的其他场景. 一.Mapper中添加其他场景操作 package net.Eleven.demo.Mapper; import net.Eleven.demo.domain.UserNew; import org.apache.ibatis.annotations.*; import java.util.List; /** * 功能描述:访问数据库的接口,相当于dao层 * @author Eleven */ public interface UserMapper {…
一.通过注解自定义servlet package net.Eleven.demo.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSe…
Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息.过滤不安全的输入等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter.通过Fil…
通过ControllerAdvice和ExceptionHandler捕获异常和错误信息,向前端返回json格式的状态码及异常描述信息. 1.新建一个Controller,抛出一个异常. package net.xdclass.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestControlle…
微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 认识Spring Boot 在N年前的大学时代想要开发一个Web服务使用的还是SSH框架(struts+spring+hibernate)尤其是Spring这块需要进行大量的配置工作,为了简化应用搭建和开发过程出现了Sprint Boot全新开源框架,且功能更加丰富,性能上更加稳定健壮,还提供了大量开箱即用(out-of-the-box)的依赖模块,使用起来更加简单高效,尤其是这几年在互联网微服务的应用上热度很高. 特性 独立的 Sp…
最近准备学习Spring Boot 随便翻一下官方的文档 Part I. Spring Boot Documentation Spirng Boot简短介绍,作为接下来内容的导航,可快速预览本章内容. 1.关于本文档Spring Boot官方手册地址: docs.spring.io/spring-boot/docs/current/reference本文档开源免费. 2.帮助a.从Demo开始学习b.Spring Boot是基于其他Spring框架,所以需要了解其他基础的Spring知识c.可通…
介绍 转载自:https://www.gitbook.com/book/qbgbook/spring-boot-reference-guide-zh/details 带目录浏览地址:http://www.maoyupeng.com/spring-boot-api.html 1.Spring Boot文档 本节提供一个Spring Boot参考文档的简明概述.你可以把它作为文档其余部分的导航.你可以从头到尾依次阅读该参考指南,或跳过你不感兴趣的章节. 1.1关于本文档 Spring Boot参考指…
在开发时有时候需要在整个应用开始运行时执行一些特定代码,比如初始化环境,准备测试数据等等. 在Spring中可以通过ApplicationListener来实现相关的功能,不过在配合Spring Boot使用时就稍微有些区别了. 创建ApplicationListener 这里以填充部分测试数据为例子,首先实现ApplicationStartup类. 1 2 3 4 5 6 7 8 publicclass ApplicationStartup implements ApplicationList…
==========================版本选择的原则:==========================1. 优先选择官方指定的long-term support(LTS)版本, 非LTS版本往往会引入较多实验性的特性, 稳定性要比LTS要差一些, LTS版本生命周期甚至会比晚发行的非LTS版更长久. 2. 优先选择纯粹的bugfix版, 而不是那种有引入新特性的版本. 3. 如果不想跟最新的技术, 选择上一个大版本的最后一个小版本, 这个小版本往往是一个比较稳定的版本, 比如S…
Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot 为什么这么简便的奥秘. 本篇基于 Spring Boot 2.0.3 版本进行分析,阅读本文需要有一些 Java 和 Spring 框架基础,如果还不知道 Spring Boot 是什么,建议先看下我们的 Spring Boot 教程. Spring Boot 的入口类 @SpringBootApplication public class SpringBootBestPr…
启动类 在包根目录下添加启动类,必须包含main方法,再添加Spring Boot启动方法: SpringApplication.run(SampleController.class, args); 或者流式API new SpringApplicationBuilder().run(args); 下面是一个典型的Spring Boot工程包布局,Application启动类位于根目录下 com +- example +- myproject +- Application.java | +- d…
1.IDEA Spring Initializer自动构建的war包项目,自动生成的Initializer类,用于外部Tomcat容器启动该项目时调用,如果仍然使用主类main函数方式启动则与此类无关(Debug验证过了) 2.自动构建的war包项目,pom.xml中引入了: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tom…
================================== 从零开始学Spring Boot视频 ================================== àSpringBoot视频 http://study.163.com/course/introduction.htm?courseId=1004329008&utm_campaign=commission&utm_source=400000000155061&utm_medium=share [截止到201…
Spring Boot 学习路线,本文计划根据作者近几年的工作.学习经验,来分析和制定一个学习使用 Spring Boot技术的步骤路线图. SpringBoot是伴随着Spring4.0诞生的: SpringBoot的目标是简化Spring的开发过程.让开发者快速搭建框架和web容器.并为微服务提供更好的支持,提供服务监控能力.Spring为开发者带来了简单和能力: Spring Boot使编码变简单 Spring Boot使配置变简单 Spring Boot使监控变简单 Spring Boo…