5 一条路上的咸鱼

尚未进行身份认证

我要认证

小白程序员一枚 0. 微信公众号(码农翻身录:coder_xiaobu) 1. [博客园](https://www.cnblogs.com/jack1995/) 2. [简书](https://www.jianshu.com/u/5ea1795d1adf) 3. [掘金](https://juejin.im/user/5ac308786fb9a028d444c410/posts) 4. [CSDN](https://me.csdn.net/jack199504) 5. [语雀](https://www.yuque.com/mujingjing)

等级
TA的排名 14w+

Spring事务的传播级别

一、简单说明传播属性描述PROPAGATION_REQUIRED如果当前没有事务,就创建一个事务,如果当前存在事务,就加入该事务。PROPAGATION_REQUIRED_NEW当前的方法必须启动新事务,并在它自己的事务内运行,不管是否存着事务,都开启新事务。PROPAGATION_SUPPORTS如果当前存在事务,就加入该事务,如果当前不存在事务,就以非事务的方式执行。PROPAGATION_NOT_SUPPORTED当前的方法不应该运行在事务中,如果有运行

2020-07-04 02:54:23

算法时间复杂度分析

算法时间复杂度分析在看一个算法是否优秀时,我们一般都要考虑一个算法的时间复杂度和空间复杂度。现在随着空间越来越大,时间复杂度成了一个算法的重要指标,那么如何估计一个算法的时间复杂度呢?时间复杂度直观体现首先看一个时间复杂度不同的两个算法,解决同一个问题,会有多大的区别。下面两个算法都是用来计算斐波那契数列的,两个算法会有多大的差异。斐波那契数列(Fibonacci sequence)...

2020-01-05 17:00:26

SpringBoot与缓存、消息、检索、任务、安全与监控

一、Spring抽象缓存Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化开发。Cache接口为缓存的组件规范定义,包含缓存的各种操作集合。Cache接口下Spring提供了各种Cache...

2019-06-10 18:39:01

SpringBoot的启动配置原理

一、启动流程创建SpringApplication对象public class SpringApplication { public SpringApplication(Class... primarySources) { this((ResourceLoader)null, primarySources); } public SpringAp...

2019-06-10 18:36:25

SpringBoot的数据访问

一、JDBC方式引入starter。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <depe...

2019-06-10 18:32:17

关于SpringBoot的自动配置和启动过程

一、简介Spring Boot简化了Spring应用的开发,采用约定大于配置的思想,去繁从简,很方便就能构建一个独立的、产品级别的应用。1.传统J2EE开发的缺点开发笨重、配置繁多复杂、开发效率低下、部署流程复杂、第三方技术集成难度大。2.SpringBoot的优点快速重建独立运行的Spring项目以及与主流框架集成。使用嵌入式的Servlet容器,应用无需打成WAR包starte...

2019-06-05 02:11:49

关于Mybatis的几件小事(二)

一、MyBatis缓存机制1.简介Mybatis包含了一个非常强大的查询缓存的特性,它可以非常方便地配置和定制。缓存key极大提高查询效率MyBatis系统中默认定义了两次缓存默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启。二级缓存需要手动开启和配置,它是基于namespace级别的缓存。为了提高扩展性,MyBatis定义了缓存接口cache。可以通...

2019-06-03 20:09:22

关于Mybatis的几件小事(一)

一、Mybatis简介1.Mybatis简介MyBatis是支持定制化SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解用于配置和冤死映射,将接口和Java的POJO(Plain Old Java Objects,普通的java对象)映射成数据库中的记录。2.为什么使用MyB...

2019-06-03 17:26:26

关于SpringMVC拦截器和异常

一.文件上传1.文件上传SpringMVC为文件上传提供了直接的支持,这种类型是通过即插即用的MultipartResolver技术的。Spring用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver.SpringMVC上下文中默认没有装配MultipartResolver,因此默认情...

2019-06-01 02:19:10

关于SpringMVC的几件小事

一.SpringMVC表单标签He处理静态资源1.Spring的表单标签通过SpringMVC的表单标签可以实现将模型数据中的属性和HTML表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显。1.form标签一般情况下,通过GET请求获取表单页面,而通过POST请求提交表单页面,因此获取表单页面和提交表单页面的URL是相同的。只要满足该最佳条件的契约,<form:form&gt...

2019-05-31 22:18:35

关于SpringMVC映射模型视图的几点小事

一.SpringMVC概述SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一。SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器,而无需实现任何接口。支持RESTFUL风格的URL。采用了松散耦合可插拔组件结构,更具灵活性和扩展性。二.使用@RequestMapping映射请求1.使用@RequestMapping映...

2019-05-31 15:58:05

关于spring中事务管理的几件小事

1.Spring中的事务管理作为企业级应用程序框架,Spring在不同的事务管理API之上定义了一个抽象层。而应用程序开发人员不必了解底层的事务管理API,就可以使用Spring的事务管理机制。Spring既支持编程式事务管理,也支持声明式的事务管理。编程事务管理:将事务管理代码嵌入到业务方法中来控制事务的提交和回滚。在编程式管理事务时,必须在每个事务操作中包含额外的事务管理代码。声明式...

2019-05-31 02:07:03

关于spring中AOP的几件小事

0.AOP简介AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是穿透OOP的补充。AOP的主要编程对象是切面(aspect),而切面模块化横切关注点。在使用AOP编程时,仍然需要定义功能功能,但可以明确的定义这个功能在哪里,以什么方式应用,并且不必修改受影响的类。这样一来横切关注点就被模块化到特殊的对象(切面)里。AOP的好处:- 每个...

2019-05-31 00:23:46

关于spring中bean配置的几件小事

一.IOC和DI1.IOC(Inversion of Control)其思想是反转资源获取的方向。传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源;而应用了IOC之后,则是容器主动的将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接收资源。这种行为也被成为查找的被动形式。2.DI(Dependency Injection)IOC的另一种表达方式...

2019-05-30 18:50:41

关于mysql事务的几件小事

零.MyISAM和InnoDB关于锁的区别①MyISAM默认用的是表级锁,不支持行级锁。②InnoDB默认用的是行级锁,也支持表级锁。③共享锁和排它锁的兼容性X排它锁共享锁排它锁冲突冲突共享锁冲突兼容④使用场景MyISAMA: 频繁执行全部count语句。B: 对数据进行增删改的频率不高,查询非常频繁。C:不需要支持事务。InnoDBA...

2019-05-30 01:23:10

关于MySQL的索引的几件小事

零.索引简介1. 索引是什么①MySQL官方对索引的定义是:索引(Index)是帮助MySQL高效获取数据的数据结构。②可以简单的理解为“排好序的快速查找数据结构”。③除了数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这种数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。④一般来说索引本身也很大,不可能全部存储在内存中,因此...

2019-05-29 20:42:42

分库分布的几件小事(五)MYSQL读写分离

1.为什么进行读写分离这个,高并发这个阶段,那肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?2.如何实现mysql读写分离其实很简单,就是基于主从复制架构,简单来说,就是搞一个主库,挂多个从库,然后我们就只是写主库,然后主库自...

2019-05-26 01:09:23

分库分布的几件小事(三)可以动态扩容缩容的分库分表方案

1.扩容与缩容这个是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都ok了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。那么现在问题来了,你现在这些库和表又支撑不住了,要继续扩容咋办?这个可能就是说你的每个库的容量又快满了,或者是你的表数据量又太大了,也...

2019-05-26 00:31:05

分库分布的几件小事(四)分库分表的id主键生成

1.问题其实这是分库分表之后你必然要面对的一个问题,就是id咋生成?因为要是分成多个表之后,每个表都是从1开始累加,那肯定不对啊,需要一个全局唯一的id来支持。所以这都是你实际生产环境中必须考虑的问题。2.生成方案(1)数据库自增id方案原理 :这个就是说你的系统里每次得到一个id,都是往一个库的一个表里插入一条没什么业务含义的数据,然后获取一个数据库自增的一个id。拿到这个id之后再往对...

2019-05-26 00:29:01

分库分布的几件小事(一)数据库如何拆分

1.为什么要分库分表①分库分表说白了,就是因为数据量太大了,如果你的单表数据量都到了千万级别,那么你的数据库就无法承受高并发的要求,数据库操作性能就会出现极大的下降。②数据库并发量太大了,一般而言,一个数据库最多支撑并发到2000,这时候一定要进行扩容,不然性能会出现严重下降。而且一个健康的单库并发值你最好保持在每秒1000左右,不要太大。那么你可以将一个库的数据拆分到多个库中,访问的时候就访...

2019-05-25 23:23:19

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。