自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(63)
  • 收藏
  • 关注

原创 秒杀解决方案

通过MD5校验是否已下单,通过接口限流和乐观锁防止超卖。

2023-05-16 15:13:04 78

原创 2023-05-16 (线程面试题总结)

在java程序中,常用的有两种机制来解决多线程并发问题,一种是sychronized方式,通过锁机制,一个线程执行时,让另一个线程等待,是以时间换空间的方式来让多线程串行执行。创建一个阻塞队列来容纳任务,在第一次执行任务时创建足够多的线程,并处理任务,之后每个工作线程自动从任务队列中获取线程,直到任务队列中任务为0为止,此时线程处于等待状态,一旦有工作任务加入任务队列中,即刻唤醒工作线程进行处理,实现线程的可复用性。start() 方法用于启动线程,run() 方法用于执行线程的运行时代码。

2023-05-16 15:01:09 271

转载 Nginx负载均衡配置

原文链接:http://blog.csdn.net/xyang81/article/details/51702900Nginx安装请参考:《Nginx源码安装》负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。春节期间在12306网站上买过火车票的朋友应该深有体会,有时查询一张火车票都会很慢,甚至整个网页都卡住不动了。通常一个访问量非常大的Web网站(比如:淘宝、京东、12306等),由于一个Web服务同时能处理的用户并发请求的数量有限,同时还

2022-01-08 19:50:34 198

转载 MYSQL索引失效

转: https://www.cnblogs.com/liehen2046/p/11052666.html简述什么时候没用1.有or必全有索引;2.复合索引未用左列字段;3.like以%开头;4.需要类型转换;5.where中索引列有运算;6.where中索引列使用了函数;7.如果mysql觉得全表扫描更快时(数据少);什么时没必要用1.唯一性差;2.频繁更新的字段不用(更新索引消耗);3.where中不用的字段;4.索引使用<>时,效果一般;详述(转)索引并不是

2022-01-04 09:18:13 83

原创 SSM 执行流程

SpringMVC 的执行流程如下。1.用户点击某个请求路径,发起一个 HTTP request 请求,该请求会被提交到 DispatcherServlet(前端控制器);2.由 DispatcherServlet 请求一个或多个 HandlerMapping(处理器映射器),并返回一个执行链(HandlerExecutionChain)。3.DispatcherServlet 将执行链返回的 Handler 信息发送给 HandlerAdapter(处理器适配器);4.HandlerAdapte.

2021-12-07 08:07:27 1377

原创 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?

Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯 Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:面向对象的配置。由于配置被定义为 JavaConfig 中的类,因此用户可以充分利用 Java 中的面向对象功能。一个配置类可以继承另一个,重写它的@Bean 方法等。减少或消除 XML 配置。基于依赖注入原则的外化配置的好处已被证明。但是,许多开发人员不希望在 XML 和 Java 之间来回切换。Java

2021-12-07 08:03:57 818

原创 Spring Boot 有哪些优点?

a、减少开发,测试时间和努力。b、使用 JavaConfig 有助于避免使用 XMLc、避免大量的 Maven 导入和各种版本冲突。d、通过提供默认值快速开始开发。没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomcat,Glassfish 或其他任何东西。e、需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将@Autowired 添加到

2021-12-07 08:03:15 103

原创 什么是 Spring Boot?

多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现在必须从头开始做所有事情。Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现有

2021-12-07 08:02:45 56

原创 Redis中的常用命令哪些?

a、hset 存储一个哈希键值对的集合b、hget获取一个哈希键的值c、hdel 删除一个或多个字段d、hgetall 获取一个哈希是键值对的集合e、lpush key value向链表左侧添加f、rpush key value向链表右侧添加g、lpop key 从左边移出一个元素h、rpop key 从右边移出一个元素i、keys * 返回所有的key 可以加*通配j、exists key判断string类型一个key是否存在 如果存在返回1 否则返回0...

2021-12-07 08:02:14 51

原创 Redis数据类型有哪些?

a、String(字符串) b、Hash(hash表) c、List(链表)d、Set(集合)e、SortedSet(有序集合zset)

2021-12-07 08:01:39 67

原创 Redis的特点什么是?

a、支持多种数据结构,如 string(字符串)、 list(双向链表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基数估算)b、支持持久化操作,可以进行aof及rdb数据持久化到磁盘,从而进行数据备份或数据恢复等操作,较好的防止数据丢失的手 段。c、支持通过Replication进行数据复制,通过master-slave机制,可以实时进行数据的同步复制,支持多级复制和增量复制, master-slave机制是Redis进行HA的重要手段。d、

2021-12-07 08:01:08 73

原创 什么是Redis?

redis是一个开源的、使用C语言编写的、支持网络交互的、可基于内存也可持久化的Key-Value数据库。

2021-12-07 08:00:35 49

原创 请写出常用的linux指令

a、cd /home 进入 ‘/ home’ 目录’b、cd … 返回上一级目录c、cd …/… 返回上两级目录d、mkdir dir1 创建一个叫做 ‘dir1’ 的目录’ e、mkdir dir1 dir2 同时创建两个目录

2021-12-07 07:59:52 54

原创 Maven常用命令有哪些?

a、install本地安装, 包含编译,打包,安装到本地仓库编译 - javac打包 - jar, 将java代码打包为jar文件安装到本地仓库 - 将打包的jar文件,保存到本地仓库目录中。b、clean清除已编译信息。删除工程中的target目录。c、compile只编译。 javac命令d、deploy部署。 常见于结合私服使用的命令。相当于是install+上传jar到私服。包含编译,打包,安装到本地仓库,上传到私服仓库。e、package打包。 包含编译,打包两个功能。

2021-12-07 07:59:13 60

原创 Maven的工程类型有哪些?

POM工程:POM工程是逻辑工程。用在父级工程或聚合工程中。用来做jar包的版本控制。JAR工程:将会打包成jar用作jar包使用。即常见的本地工程 - Java Project。WAR工程:将会打包成war,发布在服务器上的工程。如网站或服务。即常见的网络工程 - Dynamic Web Project。war工程默认没有WEB-INF目录及web.xml配置文件,IDE通常会显示工程错误,提供完整工程结构可以解决。...

2021-11-30 15:17:04 198

原创 Maven仓库是什么

Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的,Maven 可以在某个位置统一存储所有的 Maven 项目共享的构件,这个统一的位置就是仓库,项目构建完毕后生成的构件也可以安装或者部署到仓库中,供其它项目使用。对于Maven来说,仓库分为两类:本地仓库和远程仓库。...

2021-11-30 15:16:33 377

原创 什么是Maven?

Maven使用项目对象模型(POM)的概念,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发布时使用Maven,而且公司项目采用 Maven 的比例在持续增长。Maven的出现,解决了开发过程中的jar包升级及依赖的难题。它可以对项

2021-11-30 15:16:03 110

原创 Shiro 的优点

a、简单的身份认证, 支持多种数据源b、对角色的简单的授权, 支持细粒度的授权(方法级) c、支持一级缓存,以提升应用程序的性能d、内置的基于 POJO 企业会话管理, 适用于 Web 以及非 Web 的环境e、非常简单的加密 APIf、不跟任何的框架或者容器捆绑, 可以独立运行...

2021-11-30 15:15:32 104

原创 比较 SpringSecurity 和 Shiro

相比 Spring Security, Shiro 在保持强大功能的同时,使用简单性和灵活性。 SpringSecurity: 即使是一个一个简单的请求, 最少得经过它的 8 个Filter。SpringSecurity 必须在 Spring 的环境下使用。初学 Spring Security,曲线还是较大,需要深入学习其源码和框架, 配置起来也较费力....

2021-11-30 15:15:01 256

原创 shiro有哪些组件?

a、Authentication:身份认证/登录,验证用户是不是拥有相应的身份;b、Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验 证某个用户是否拥有某个角色。或者细粒度的验证某个用户对某个资源是否具有某个权限;c、Session Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通JavaSE环境的,也可以是如Web环境的;d、Cryptography:加密,

2021-11-30 15:14:31 64

原创 Apache Shiro 的三大核心组件

a、Subject :当前用户的操作b、SecurityManager:用于管理所有的Subjectc、Realms:用于进行权限信息的验证

2021-11-30 15:13:59 119

原创 shiro可以完成哪些工作?

shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等

2021-11-30 15:13:29 56

原创 Mybatis多对一

<!-- 多对一--> <resultMap id="cc1" type="classInfo"> <result property="classId" column="classId"></result> <result property="className" column="className"></result> <collection property="st

2021-11-30 15:10:25 37

原创 Mybatis一对多

<!-- 一对多--> <resultMap id="ss1" type="StudentInfo"> <result property="stuId" column="stuId"></result> <result property="stuName" column="stuName"></result> <result property="stuSex" colu

2021-11-30 15:10:00 109

原创 Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?

sleep()方法是Thread类sleep是Thread的静态native方法,可随时调用,会使当前线程休眠,并释放CPU资源,但不会释放对象锁;wait()方法是Object类wait()方法是Object的native方法,只能在同步方法或同步代码块中使用,调用会进入休眠状态,并释放CPU资源与对象锁,需要我们调用notify/notifyAll方法唤醒指定或全部的休眠线程,再次竞争CPU资源.注意:sleep(long millis)存在睡眠时间,不算特点因为wait()方法.

2021-11-25 19:29:54 485

转载 javaWeb上传文件——>使用jspSmartUpload

众所周和,java在做web项目开发时,经常用到文件上传功能,如果上传用户头像,照片,上传word文件等。那么今天我们就一起来探索一下java实现文件上传的第一种方式:首先看一下上传input的写法:<!DOCTYPE html><html><head><meta charset="UTF-8"><title>文件上传</title></head><body> <form actio

2021-11-24 19:10:39 286

原创 Spring_JDBC_TX

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www

2021-11-24 18:59:35 205

原创 简述synchronized 和java.util.concurrent.locks.Lock的异同?

简要答案:1.Lock能完成几乎所有synchronized的功能,并有一些后者不具备的功能,如锁投票、定时锁等候、可中断锁等候等2.synchronized 是Java 语言层面的,是内置的关键字;Lock 则是JDK 5中出现的一个包,在使用时,synchronized 同步的代码块可以由JVM自动释放;Lock 需要程序员在finally块中手工释放,如果不释放,可能会引起难以预料的后果(在多线程环境中)。...

2021-11-24 15:53:50 461

原创 乐 观 锁 一 定 就 是 好 的 吗 ?

乐 观 锁 避 免 了 悲 观 锁 独 占 对 象 的 现 象 , 同 时 也 提 高 了 并 发 性 能 , 但 它 也有 缺 点 :a 、 乐 观 锁 只 能 保 证 一 个 共 享 变 量 的 原 子 操 作 。 如 果 多 一 个 或 几 个 变 量 , 乐观 锁 将 变 得 力 不 从 心 , 但互斥 锁 能 轻 易 解 决 , 不 管 对 象 数 量 多 少 及 对 象颗 粒 度 大 小 。b 、 长 时 间 自 旋 可 能 导 致 开 销 大 。 假 如 CAS 长 时 间 不 成 功

2021-11-24 15:52:40 209

原创 线程的sleep()方法和yield()方法有什么区别

sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会;yield()方法只会给相同优先级或更高优先级的线程以运行的机会线程执行sleep()方法后转入阻塞(blocked)状态,而执行yield()方法后转入就绪(ready)状态sleep()方法声明抛出InterruptedException,而yield()方法没有声明任何异常...

2021-11-24 15:45:27 78

原创 线程的状态

线程状态1.新建new语句创建的线程对象处于新建状态,此时它和其他java对象一样,仅被分配了内存。2.等待当线程在new之后,并且在调用start方法前,线程处于等待状态。3.就绪当一个线程对象创建后,其他线程调用它的start()方法,该线程就进入就绪状态。处于这个状态的线程位于Java虚拟机的可运行池中,等待cpu的使用权。4.运行状态处于这个状态的线程占用CPU,执行程序代码。在并发运行环境中,如果计算机只有一个CPU,那么任何时刻只会有一个线程处于这个状态。只有处于就绪状态的线程

2021-11-24 15:43:23 160

原创 .接口绑定有几种实现方式,分别是怎么实现的?

接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上@Select@Update 等注解里面包含 Sql 语句来绑定,另外一种就是通过 xml 里面写 SQL 来绑定,在这种情况下,要指定 xml 映射文件里面的 namespace 必须为接口的全路径名....

2021-11-23 18:53:54 92

原创 7.什么是 MyBatis 的接口绑定,有什么好处?

接口映射就是在 MyBatis 中任意定义接口,然后把接口里面的方法和 SQL 语句绑定,我们直接调用接口方法就可以,这样比起原来了 SqlSession 提供的方法我们可以有更加灵活的选择和设置.

2021-11-23 18:53:24 246

原创 MyBatis 的好处是什么?

a、MyBatis 把 sql 语句从 Java 源程序中独立出来,放在单独的 XML 文件中编写,给程序的维护带来了很大便利。b、MyBatis 封装了底层 JDBC API 的调用细节,并能自动将结果集转换成 Java Bean 对象, 大大简化了 Java 数据库编程的重复工作。c、因为 MyBatis 需要程序员自己去编写 sql 语句,程序员可以结合数据库自身的特点灵活控制 sql 语句,因此能够实现比 Hibernate 等全自动 orm 框架更高的查询效率,能够完成复杂查询。...

2021-11-23 18:52:54 358

原创 MyBatis 与 Hibernate 有哪些不同?

a、Mybatis 和 hibernate 不同,它不完全是一个 ORM 框架,因为 MyBatis 需要程序员自己编写 Sql 语句,不过 mybatis 可以通过 XML 或注解方式灵活配置要运行的 sql 语句,并将java 对象和 sql 语句映射生成最终执行的 sql,最后将 sql 执行的结果再映射生成 java 对象。...

2021-11-23 18:51:51 66

原创 为什么说 Mybati2.3 s 是半自动 ORM 映射工具?它与全自动的区别在哪里?

Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,可以根据对象关系模型直接获取,所以它是全自动的。而 Mybatis 在查询关联对象或关联集合对象时,需要手动编写 sql 来完成,所以,称之为半自动ORM 映射工具。...

2021-11-23 18:51:18 187

原创 #{}和${}的区别是什么?

a、#{}是预编译处理,${}是字符串替换。b、Mybatis 在处理#{}时,会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值;c、Mybatis 在处理时,就是把{}时,就是把时,就是把{}替换成变量的值。d、使用#{}可以有效的防止 SQL 注入,提高系统安全性。...

2021-11-23 18:50:46 507

原创 Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?

a、Mybatis 动态 sql 可以让我们在 Xml 映射文件内,以标签的形式编写动态 sql,完成逻辑判断和动态拼接 sql 的功能。b、Mybatis 提 供 了 9 种 动 态 sql 标 签 : trim|where|set|foreach|if|choose|when|otherwise|bind。c、其执行原理为,使用 OGNL 从 sql 参数对象中计算表达式的值,根据表达式的值动态拼接 sql,以此来完成动态 sql 的功能。...

2021-11-23 18:50:13 731

转载 Spring AOP总结

Spring AOP的重要对象Spring AOP的参与者。切面(Aspect): 一个关注点的模块化,这个模块会横切多个对象。Spring中使用org.springframework.aop.Advisor作切面。连接点(Joinpoint): 程序执行过程中明确的点,如方法的调用或特定的异常被抛出。Spring中使用org.aspectj.lang.JoinPoint为连接点对象。切点(Pointcut): 指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点:例如,.

2021-11-23 18:48:38 282

转载 Spring IOC原理总结

Spring容器高层视图Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。Bean缓存池:HashMap实现IOC容器介绍Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提

2021-11-23 18:46:48 86

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除