SpringBoot 及其 基本原理(一)】的更多相关文章

个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.SpringBoot 的版本与启动过程 1.SpringBoot都是jar工程 ​ 2.SpringBoot 版本问题 大版本1:内置的Spring是大版本4 1.5.8 1.5.12 大版本2:内置的Spring是大 版本5 3.SpringBoot启动过程观察 ​ ① 核心机制: ​ ② 重要注解 注解名称 作用 @SpringBootApplication 声明一个SpringBoot程序,…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 前言: 分布式架构及微服务理念 1.SOA理念(思想) SOA :即 Service Oriented Architecture,面向服务架构 主张: 把项目中的各个模块从单一架构中拆分出来,封装成一个一个可以远程调用的服务,从而实现分布式架构. 开发具体的每一个服务时,使用一个interface定义这个服务的功能,这就是我们常说的暴露接口. 当我们实现了interface,将接口暴露到了网络上,可以…
以下内容,如有问题,烦请指出,谢谢 springboot出来也很久了,以前零散地学习了不少,不过很长时间了都没有在实际中使用过了,忘了不少,因此要最近准备抽时间系统的学习积累下springboot,给自己留个根. 因为以前学过一些,这里就主要根据官方文档来学习了,可能会根据自己的理解来选择一些知识点的学习顺序.官方文档地址:https://docs.spring.io/spring-boot/docs/1.5.8.RELEASE/reference/htmlsingle/ 官方文档有十个大章节,…
Redis-Sentinel是官方推荐的高可用解决方案,当redis在做master-slave的高可用方案时,假如master宕机了,redis本身(以及其很多客户端)都没有实现自动进行主备切换,而redis-sentinel本身也是独立运行的进程,可以部署在其他与redis集群可通讯的机器中监控redis集群. v哨兵作用 监控(Monitoring): 哨兵(sentinel) 会不断地检查你的Master和Slave是否运作正常. 提醒(Notification):当被监控的某个Redi…
记住我功能的基本原理 当用户登录发起认证请求时,会通过UsernamePasswordAuthenticationFilter进行用户认证,认证成功之后,SpringSecurity 调用前期配置好的记住我功能,实际是调用了RememberMeService接口,其接口的实现类会将用户的信息生成Token并将它写入 response 的Cookie中,在写入的同时,内部的TokenRepositoryTokenRepository会将这份Token再存入数据库一份. 当用户再次访问服务器资源的时…
emmm.....常规开局,继续说一下废话,前面简单的说了一下spring的ioc容器创建原理(花了不少时间去看了别人的博客+查了不少资料+自己的理解),相信大家对ioc容器有了一个初步的认识了. springboot学了这么久了,也该和数据库打打交道了.大家还记不记得,以前最初用spring和数据库打交道的一个东西,JdbcTemplate(就是对jdbc做了一个简单的封装,忘记了的小伙伴去看看别人的博客回顾一下),今天就用springboot如何使用JdbcTemplate和数据库交互以及基…
零.前言 本文基于<基于SpringBoot搭建应用开发框架(一)——基础架构>,通过该文,熟悉了SpringBoot的用法,完成了应用框架底层的搭建. 在开始本文之前,底层这块已经有了很大的调整,主要是SpringBoot由之前的 1.5.9.RELEASE 升级至 2.1.0.RELEASE 版本,其它依赖的三方包基本也都升级到目前最新版了. 其次是整体架构上也做了调整: sunny-parent:sunny 项目的顶级父类,sunny-parent 又继承自 spring-boot-st…
思考:什么是分布式?什么是微服务? 一些概念:RPC-远程过程调用,某台机器想要调用另一台机器所需要的一种服务,及分布式的服务框架,比如dubbo或者SpringCloud. 铺天盖地的分布式互联网系统,使用较多的是zookeeper+dubbo组合,而Springboot推荐使用全栈Spring,就是Springboot+SpringCloud. 举例说明一下基本原理:A想要获得数据B,但是有10台机器都可能存放了数据B,那么我要去哪台取数据B呢?A和B中间就有了一个管理站,这个管理站类似一个…
//本文作者:cuifuan Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性,可优化性比较强,这也是现在大多数人选择的原因. 1. mapper.xml.dao接口.实体类自动生成 下载 : https://pan.baidu.com/s/1JY7Xduk5E3KPm58AjnueuQ 工具包 1.1 修改配置文件generator.xml 解压之后,这里把文件拷贝到了…
前言 MQ,即消息队列Message Queue的缩写. RabbitMQ 是MQ的一种,就像招商银行是银行的一种一样.主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用. 消息中间件最主要的作用是解耦,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的.在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等. 安装 1.windows 2…
一.引入 只要引入了spring-boot-starter-security,所有的服务都会被保护起来.启动项目,打开时所有的controller会被保护起来,随便访问一个,如http://localhost:8080/user就是这个效果,让我们输入用户名密码,默认的用户名是user,密码会在应用启动时在控制台打印:Using default security password: 1e520d65-b38b-4522-a340-fbe2612821fc 然后才能正常访问接口: 在applica…
西部开源-秦疆老师:SpringBoot + Dubbo + zookeeper 秦老师交流Q群号: 664386224 未授权禁止转载!编辑不易 , 转发请注明出处!防君子不防小人,共勉! 基础知识 分布式理论 什么是分布式系统? 在<分布式系统原理与范型>一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”: 分布式系统是由一组通过网络进行通信.为了完成共同的任务而协调工作的计算机节点组成的系统.分布式系统的出现是为了用廉价的.普通的机器完成单个计…
动态代理是一种设计模式.在Spring中,有俩种方式可以实现动态代理--JDK动态代理和CGLIB动态代理. JDK动态代理 首先定义一个人的接口: public interface Person { void study(); } 然后接上一个Student class public class Student implements Person{ @Override public void study() { System.out.println("学生要学习"); } } 然后我…
本文是通过查看SpringBoot源码整理出来的SpringBoot大致启动流程,整体大方向是以简单为出发点,不说太多复杂的东西,内部实现细节本文不深扣因为每个人的思路.理解都不一样,我个人看的理解跟大家看的肯定不一样,到时候表达的出来的云里雾里也没啥用. 首先我将SpringBoot的启动流程整理成以下阶段: SpringApplicaiton初始化 审查ApplicationContext类型 加载ApplicationContextInitializer 加载ApplicationList…
一.文章简介 本文简要介绍了spring security的基本原理和实现,并基于springboot整合了spring security实现了基于数据库管理的用户的登录和登出,登录过程实现了验证码的校验功能. 完整代码地址:https://github.com/hello-shf/spring-security.git 二.spring security框架简介 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.主要包括:用户认…
在上一章:SpringBoot集成Spring Security(1)——入门程序中,我们实现了入门程序,本篇为该程序加上自动登录的功能. 文章目录 一.修改login.html二.两种实现方式 2.1 Cookie 存储 2.2 数据库存储 2.2.1 基本原理 2.2.2 代码实现三.运行程序 源码地址:https://github.com/jitwxs/blog_sample 一.修改login.html 在登陆页添加自动登录的选项,注意自动登录字段的 name 必须是 remember-…
在之前的文章里介绍了SpringBoot和SpringSecurity如何继承.之后我们需要考虑另外一个问题:当前微服务化也已经是大型网站的趋势,当我们的项目采用微服务化架构时,往往会出现如下情况: 首先,我们会建立一个用户中心UserCenter,实现用户的登录.登出以及其他用户信息维护等相关功能. 然后,我们会有其他业务模块,比如订单中心OrderCenter,用来创建.删除及查看订单信息,其中创建.删除订单需要管理员角色. 那么接下来我们思考我们如何做到统一的用户认证及鉴权? 毫无疑问的,…
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 温故而知新 本篇接 外部配置属性值是如何被绑定到XxxProperties类属性上的?--SpringBoot源码(五) 温故而知新,我们来简单回顾一下上篇的内容,上一篇我们分析了SpringBoot外部配置属性值是如何被绑定到XxxProperties类属性上的相关源码,现将外部属性绑定的重要步骤总结如下: 首先是@EnableConfigurationProperties注解import了EnableConfigur…
前言 在学习SparkJava.Vert.x等轻量级Web框架的时候,都遇到过打包问题,这两个框架打包的时候都需要添加额外的Maven配置,并指定启动类才能得到可执行的JAR包: 而springboot项目,似乎都不需要额外的配置,直接package就可以得到可执行的JAR包,这是怎么回事呢? Vert.x要怎么配? 我们先来看看,Vert.x打包做哪些配置 1)引入maven-shade-plugin插件 2)在插件中指定在package完成时触发shade操作 3)指定启动类 <plugin…
Spring全家桶系列一一SpringBoot与Mybatis结合 本文授权"Java知音"独家发布. Mybatis 是一个持久层ORM框架,负责Java与数据库数据交互,也可以简易理解为中介,相对于它,还有个中介是hibernate,不过在mybatis中sql语句的灵活性,可优化性比较强,这也是现在大多数人选择的原因. 1. mapper.xml.dao接口.实体类自动生成 下载 https://pan.baidu.com/s/1JY7Xduk5E3KPm58AjnueuQ 工具…
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: 能独立运行的jar文件 在开发springboot应用时,通过java -jar命令启动应用是常用的方式,今天就来一起了解这个简单操作背后的技术: 开发demo 开发一个springboot应用作为本次研究的对象,对应的版本信息如下: JDK:1.8.0_211 springboot:2.3.…
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架.提供了完善的认证机制和方法级的授权功能.是一款非常优秀的权限管理框架.它的核心是一组过滤器链,不同的功能经由不同的过滤器.这篇文章就是想通过一个小案例将Spring Security整合到SpringBoot中去.要实现的功能就是在认证服务器上…
写在前面 在前一篇文章当中,我们介绍了springBoot整合spring security单体应用版,在这篇文章当中,我将介绍springBoot整合spring secury+JWT实现单点登录与权限管理. 本文涉及的权限管理模型是基于资源的动态权限管理.数据库设计的表有 user .role.user_role.permission.role_permission. 单点登录当中,关于访问者信息的存储有多种解决方案.如将其以key-value的形式存储于redis数据库中,访问者令牌中存放…
案例功能效果图 前端初始页面 输入搜索信息页面 点击查询结果页面 环境介绍 前端:vue 后端:springboot jdk:1.8及以上 数据库:mysql 核心代码介绍 TypeCtrler .java package com.yxyz.ctrler; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import…
B站播放地址:https://www.bilibili.com/video/BV1PE411i7CV?t=51 博客地址:https://www.cnblogs.com/hellokuangshen/p/12516870.html 狂神参考雷锋阳的视频讲的,建议视频还是看雷锋阳的 1.学习路线 2.什么是SpringBoot SpringBoot是一个Javaweb的开发框架,和SpringMVC类似,相比其他Javaweb框架,SpringBoot简化开发,约定大于配置,能迅速地开发web应用…
1.SpringBoot分模块 分模块就是将一个项目分成多个模块,即maven项目. 1)首先创建一个springboot的项目: 第一步:选择springboot的项目 第二步:填写项目的相关信息,主要是下图的红框部分,改成自己的即可,这里就使用默认的,项目名是demo 第三步:选择所需要的依赖,这里就只添加web和lombok,其他的后面需要再进行依赖 点击完成后,等待加载完成. 2)创建一个项目启动器: 第一步:选中刚建的项目,右键创建一个maven的模块,填写模块名称,这里就为proje…
Jackson允许配置多态类型处理,当JSON面对的转换对象是一个接口.抽象类或者一个基类的时候,可以通过一定配置实现JSON的转换.在实际项目中,Controller层接收入参以及在Dao层将对象以json的形式存入数据库时都可能会遇到这个问题.而Springboot和mp都支持使用Jackson处理json,从而可以利用Jackson的特点,解决这一问题. 注意 为了代码简洁,这里的代码忽略了set和get方法和构造函数 在本例中,父类Zoo有两个子类Dog和Cat类 public stat…
仓库地址 w4ngzhen/springboot-simple-guide: This is a project that guides SpringBoot users to get started quickly through a series of examples (github.com) Chapter00 学习SpringBoot前的基本知识 一 反射 在Java中,我们可以通过反射(Reflection)来获取任何类的类型信息,其中最值得关注的就是Class类.通过Class类,…
Spring自动配置 从@SpringBootApplication注解说起 SpringBoot会根据类路径下的类自动配置,省去了编写繁琐的xml配置文件.原本基于xml配置bean的方式编程基于Java代码,并且可以条件化配置,根据不同的场景配置也随之不同.是不是很智能 为了清楚SpringBoot自动配置的原理,我们从最简单的SpringBoot的启动类说起,看一个简单的启动实例 @SpringBootApplication public class Application { publi…
1.Hello,World! 1.1.SpringBoot简介 回顾什么是Spring Spring是一个开源框架,2003 年兴起的一个轻量级的Java 开发框架,作者:Rod Johnson . Spring是为了解决企业级应用开发的复杂性而创建的,简化开发. Spring是如何简化Java开发的 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: 基于POJO的轻量级和最小侵入性编程,所有东西都是bean: 通过IOC,依赖注入(DI)和面向接口实现松耦合: 基于切面(AO…