java
文章平均质量分 55
qq_33296156
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
05----------高并发下的数据库表或者大多数情况下,不再使用外键
在学校时,我们经常使用外键来关联表格,这样可以保证数据的一致性,但实际上,在很多场景下,我们并不太需要保证数据的一致性,而是需要效率,而且现在随着分布式的流行,很多情况下一个数据库已经不再适合使用,因此外键也就不再使用例如:商品表goodspublic class Goods { private Long id; //商品ID private Stri...原创 2018-08-27 10:20:53 · 1341 阅读 · 0 评论 -
T和?的区别
Java中的Object、T(泛型)、?区别因为最近重新看了泛型,又看了些反射,导致我对Object、T(以下代指泛型)、?产生了疑惑。我们先来试着理解一下Object类,学习Java的应该都知道Object是所有类的父类,注意:那么这就意味着它的范围非常广!首先记住这点,如果你的参数类型时Object,那么的参数类型将非常广!《Thinking in Java》中说很多原因促成了泛型...转载 2018-09-05 09:18:26 · 17322 阅读 · 4 评论 -
java动态代理
在学习Spring的时候,我们知道Spring主要有两大思想,一个是IoC,另一个就是AOP,对于IoC,依赖注入就不用多说了,而对于Spring的核心AOP来说,我们不但要知道怎么通过AOP来满足的我们的功能,我们更需要学习的是其底层是怎么样的一个原理,而AOP的原理就是java的动态代理机制,所以本篇随笔就是对java的动态机制进行一个回顾。在java的动态代理机制中,有两个重要的类或接口...转载 2018-09-04 13:38:09 · 112 阅读 · 0 评论 -
02----------为什么说redis是单线程
1.首先说明并发和并行的区别:通俗点说 并发就是不同线程同时干一件事情并行就是不同线程同时干不同的事情2.Redis不存在线程安全问题? Redis采用了线程封闭的方式,把任务封闭在一个线程,自然避免了线程安全问题,不过对于需要依赖多个redis操作的复合操作来说,依然需要锁,而且有可能是分布式锁单线程指的是网络请求模块使用了一个线程(所以不需考虑并发安全性),即一个线程处理所有...转载 2018-08-29 20:12:28 · 198 阅读 · 0 评论 -
09----------数学公式验证码
1.添加生成验证码的接口2.在获取路径时,验证验证码3.ScrptEngine使用(jdk1.6以上可用)1.生成类似3-4*6的验证码//使用画板,验证码生成图片,放入redis后返回public BufferedImage createVerifyCode(MiaoshaUser user, long goodsId) { if(user == null || good...原创 2018-08-29 09:34:54 · 762 阅读 · 0 评论 -
08----------"秒杀"接口优化
1.Redis预减库存减少服务器访问2.内存标记减少Redis访问3.请求先入队缓冲,异步下单,增强用户体验4.RabbitMQ安装与SpringBoot集成5.Nginx水平拓展6.数据库分库分表(mycat)1.解决超卖问题 1)数据库加唯一索引,防止秒杀期间用户重复购买 2)sql加库存数量判断,防止库存变为负数减少数据库访问: 1)系...原创 2018-08-29 09:13:21 · 200 阅读 · 0 评论 -
09---------RabbitMq的四种交换机模式
首先要导入依赖<!-- 添加rabbitmq依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactI...原创 2018-08-28 19:29:22 · 608 阅读 · 0 评论 -
07----------优化访问速率(页面缓存)
1.页面缓存+URL缓存+对象缓存2.页面静态化,前后端分离3.静态资源优化4.cdn优化一.SpringBoot实现页面缓存 @ResponseBody @RequestMapping(value="/to_list",produces="text/html") public String list(HttpServletRequest request,HttpServ...原创 2018-08-27 20:24:28 · 441 阅读 · 0 评论 -
在myeclipse中使用maven打包springboot项目,并防止于tomcat运行
1.在pom.xml加入配置文件,其中的1.8为自己的jdk版本<!--因配置外部TOMCAT 而配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot...原创 2018-08-27 16:25:55 · 1808 阅读 · 0 评论 -
01----------统一封装返回信息{code,msg,data}
在实际开发过程中,我们经常要返回数据给前台,这时候就需要定义返回的code1.封装result,作为返回的对象public class Result<T> { private int code; private String msg; private T data; /** * 成功时候的调用 * */...原创 2018-08-26 11:06:37 · 22018 阅读 · 0 评论 -
02----------封装redis
1.定义读取redis配置文件的配置类RedisConfigpackage MiaoSha.redis;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.stereotype.Component;/** * Redis的配置文件...原创 2018-08-26 11:23:50 · 167 阅读 · 0 评论 -
03----------JSR303参数校验,自定义参数校验器和全局的异常处理器
一,参数校验1,引入相关的依赖<!-- 参数校验 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> ...原创 2018-08-26 15:44:35 · 522 阅读 · 0 评论 -
04----------HandlerMethodArgumentResolver自定义参数转换器
有时候,我们在controller的方法中,会发现有一些方法都是在获取相同的参数,然后进行一些相同的操作,此时,我们就可以对这些操作进行处理1.继承HandlerMethodArgumentResolver,UserArgumentResolverpackage MiaoSha.config;import javax.servlet.http.Cookie;import javax...原创 2018-08-26 22:12:21 · 229 阅读 · 0 评论 -
Java运算符
1.>>,>>>和<<<<< : 左移运算符,num << 1,相当于num乘以2>> : 右移运算符,num >> 1,相当于num除以2>>> : 无符号右移,忽略符号位,空位都以原创 2018-09-05 17:48:16 · 122 阅读 · 0 评论
分享