2020
10-10
10-10
这一次搞懂Spring事务注解的解析方式
前言事务我们都知道是什么,而Spring事务就是在数据库之上利用AOP提供声明式事务和编程式事务帮助我们简化开发,解耦业务逻辑和系统逻辑。但是Spring事务原理是怎样?事务在方法间是如何传播的?为什么有时候事务会失效?接下来几篇文章将重点分析Spring事务源码,让我们彻底搞懂Spring事务的原理。正文XML标签的解析<tx:annotation-driventransaction-manager="transactionManager"/>配置过事务的应该都不陌生,上面这个配置就是...
继续阅读 >
一、Sharding-jdbc简介“Sharding-jdbc是开源的数据库操作中间件;定位为轻量级Java框架,在Java的JDBC层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。官方文档地址:https://shardingsphere.apache.org/document/current/cn/overview/本文demo实现了分库分表功能。如有错误,欢迎各位在评论中指出。不胜感激!二、项目结构首先创建...
本文主要介绍了SpringCloudAdmin的使用,分享给大家,具体如下:源码地址:https://github.com/muxiaonong/Spring-Cloud/tree/master/cloudadminAdmin简介官方文档:WhatisSpringBootAdmin?SpringBootAdmin是一个用于管理和监控SpringBoot微服务的社区项目,可以使用客户端注册或者Eureka服务发现向服务端提供监控信息。注意,服务端相当于提供UI界面,实际的监控信息由客户端Actuator提供通过SpringBootAdmin,你可以...
前言相信很多Java开发都遇到过一个面试题:Resource和Autowired的区别是什么?这个问题的答案相信基本都清楚,但是这两者在Spring中是如何实现的呢?这就要分析Spring源码才能知道了。友情提示:本篇主要是讲解Autowired的实现原理,不会分析Spring初始化的过程,不熟悉的读者可以先阅读笔者之前的一篇文章《这一次搞懂Spring的Bean实例化原理》。正文在SpringBean的整个创建过程中会调用很多BeanPostProcessor接口的的实现类:上...
前言前两篇文章分析了SpringXML和注解的解析原理,并将其封装为BeanDefinition对象存放到IOC容器中,而这些只是refresh方法中的其中一个步骤——obtainFreshBeanFactory,接下来就将围绕着这些BeanDefinition对象进行一系列的处理,如BeanDefinitionRegistryPostProcessor对象方法的调用、BeanFactoryPostProcessor对象方法的调用以及Bean实例的创建都离不开这些BeanDefinition对象。下面就来看看Spring是如何处理这些对象的。正...
一、创建项目并导入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.security.oauth</groupId><artifactId>spring-security-oauth2</artifactId><version>2.3.6.RELEASE</versi...
1.前言文件服务器是一个应用必要的组件之一。最早我搞过FTP,然后又用过FastDFS,接私活的时候我用MongoDB也凑合凑合。现如今时代不同了,开始流行起了OSS。Gitee:https://gitee.com/felord/konoday06分支欢迎StarGitHub:https://github.com/NotFound403/konoday06分支欢迎Star2.什么是OSS全称为ObjectStorageService,也叫对象存储服务,是一种解决和处理离散单元的方法,可提供基于分布式系统之上的对象形式的数据存...
MyBatisMyBatis是一个基于Java的持久层框架。MyBatis提供的持久层框架包括SQLMaps和DataAccessObjects(DAO),它消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录。目前,Java的持久层框架产品有许多,常见的有Hibernate和MyBatis。MyBatis和hibern...
配置好一个SptingBoot项目配置好MyBatisJavaEESpring~MyBatis是什么?它和Hibernate的区别有哪些?如何配置MyBatis?SpringBoot配置文件application.properties简单介绍确保MyBatis配置正确手动实现一个xml文件上面我是用的是一个自定义的接口此时没有它对应的xml文件此时我们需要下图中column表示查询列,property表示返回类型中的属性在Controller中进行测试packagelisten.controller;importlisten.mapper.TestMappe...
负载均衡使用微服务后,为了能够承担高并发的压力,同一个服务可能会启动多个实例。这时候消费者就需要负载均衡,把请求分散到各个实例。负载均衡主要有两种设计:服务端负载均衡客户端负载均衡对于传统的分布式服务来说,大多使用服务端负载均衡。一般会使用Nginx或者ELB等工具作为负载均衡器,如下图:传统负载均衡而在SpringCloud中,使用的是「客户端负载均衡」的方式,使用「Ribbon」组件来实现客户端的负载均衡。只要引入了...
1.添加Swagger2依赖<dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger2</artifactId><version>2.2.2</version></dependency><dependency><groupId>io.springfox</groupId><artifactId>springfox-swagger-ui</artifactId><version>2.2.2</version></dependency>2配置类@Configuration@EnableSwagger2publicclassSwagger2{@BeanpublicDocketcreateRestApi(){returnnewDocket(...
写在前边在文章OAuth2.0概念及授权流程梳理中我们谈到OAuth2.0的概念与流程,这里我准备分别记一记这几种授权模式的demo,一方面为自己的最近的学习做个总结,另一方面做下知识输出,如果文中有错误的地方,请评论指正,在此不胜感激受众前提阅读本文,默认读者已经过SpringSecurity有一定的了解,对OAuth2流程有一定了解本文目标带领读者对SpringSecurityOAuth2框架的授权码模式有一个比较直观的概念,能使用框架搭建授权...