
后端/java/web框架
文章平均质量分 73
橘子味的阳光
难得世界那么美
展开
-
对volatile的认知
volatile是jvm提供的轻量级同步机制保证了不同线程对变量操作的内存可见性强制线程每次读取时从主内存取值禁止指令重排序编译器可能对输入指令进行执行重排序,各个语句执行的先后顺序不一致,但会保证执行结果一直, 但是忽略的数据的依赖性通过在指令间添加内存屏障,强制刷新cpu缓存数据,并且禁止指令重排序, store的屏障指令进行写操作, 使用copy命令刷新到主内存,load屏障指令从主内存中读取共享变量不具备原子性...原创 2020-11-11 15:51:35 · 219 阅读 · 4 评论 -
你知道多少wait与sleep区别(看看你在哪个工作年限)
找实习sleep()方法方法是属于Thread类中的静态方法。wait()方法属于Object类中的。初级sleep()方法导致了程序暂停执行指定的时间,让出cpu给其他线程,但依然是监控状态保持者(线程不会释放对象锁),当指定的时间到了又会自动恢复运行状态。而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备获取对象锁进入运行状态。中级sleep(1000)和wait(1000)的区别:Thread原创 2020-11-11 12:28:23 · 165 阅读 · 0 评论 -
从观察者模式到spring事件机制
观察者模式(Observe Pattern)定义对象之间的一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。业务开发中,观察者模式对我们很大的一个作用,在于实现业务的解耦。spring事件机制Spring 基于观察者模式,实现了自身的事件机制,由三部分组成:事件 ApplicationEvent:通过继承它,实现自定义事件。另外,通过它的 source 属性可以获取事件源,timestamp 属性可以获得发生时间。事件发布者 ApplicationEven原创 2020-11-11 11:09:13 · 252 阅读 · 0 评论 -
微服务2-[springboot应用目录][2019-11]
SpringBoot学习目录,常用使用原创 2018-10-23 23:02:58 · 699 阅读 · 0 评论 -
安全框架-shiro/springsecurity
shiroApache提供的功能强大开源安全框架简单灵活,粒度粗git 源码========<><><>企业会话管理安全加密缓存管理1.认证流程:创建SecurutyManager对象-》主体提交认证 -》SecurityManager认证-》Authenticator认证-》realm验证原创 2018-11-19 11:45:35 · 396 阅读 · 0 评论 -
javaweb-servlet/jsp全解
什么是sevlet?servlet是和平台无关的服务器端组件,它运行在servlet容器中servlet容器负责sevlet和客户端通信以及调用servlet内的方法收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页sevlet和客户通信才用"请求/相应"模式sevlet生命周期第一次请求sevlet时,创建sevlet实例,调用servlet 构造方法(单原创 2018-11-23 22:53:34 · 236 阅读 · 0 评论 -
spring boot使用三种拦截器
https://blog.youkuaiyun.com/weixin_38704338/article/details/81285377https://www.cnblogs.com/bingshu/p/7819932.html过滤器(Filter) :可以拿到原始的http请求,但是拿不到你请求的控制器和请求控制器中的方法的信息。拦截器(Interceptor):可以拿到你请求的控制器...原创 2019-03-19 16:10:32 · 487 阅读 · 0 评论 -
Mybatis-Plus-集mybatis与hibernate的优点一起的框架
优势SQL语句可以自由控制、更灵活和性能更高SQL与代码分离,易于阅读和维护提供XML标签,支持编写动态SQL语句劣势简单CURD操作也要写SQL,开发量大XML中需要维护大量SQL自身功能少,需要依赖插件Mybatis-Plus简介增强Mybatis无侵入,损耗小,强大的Curd操作支持lambda形式调用,支持多种数据库支持主键自动生成,支持ActiveRec...原创 2019-06-11 17:24:36 · 5871 阅读 · 0 评论 -
TimeUnit-给定单元粒度的时间段
概念表示给定粒度单位的时间持续时间,并提供跨单位转换的实用方法,并在这些单元中执行定时和延时操作作用时间颗粒度转换延时应用1 延时可读性比较差Thread.sleep(4*60*1000);替换语句TimeUnit.MINUTES.sleep(4); // sleeping for 4 minutes其他用例TimeUnit.DAYS //天 T...原创 2019-04-28 11:24:04 · 1929 阅读 · 0 评论 -
springboot-jpa|hibernate|springdata
一、ConceptJPA java persistence API通过5.0的注解或者xml描述对象到关系表的映射关系,并将运行期的实体对象持久化到数据库中Hibernatejpa是一种规范,hibernate是它的实现对jdbc轻量级封装,将pojo与数据库表建立映射关系,全自动orm框架springData简化对数据库访问,支持云服务的开源框架springDataJpa是sp...原创 2018-10-28 15:21:51 · 448 阅读 · 0 评论 -
java-springboot整合发送邮件|告警邮件|注册邮件
一、基础知识邮件传输协议: SMTP协议(简单邮件传输协议,属于TCP/IP协议簇,应用层协议) POP3协议(邮局协议版本3,是TCP/IP协议族中的一员,本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。提供了SSL加密的POP3协议被称为POP3S) IMAP协议(邮件客户端(可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等它与POP3协议的主要区别是用户可以不用把...原创 2018-09-10 10:40:05 · 5511 阅读 · 0 评论 -
java面试笔试宝典2020年4月
java面试题,编码规范原创 2018-09-15 10:37:34 · 907 阅读 · 0 评论 -
json-json|fastjson与jackson
JSON[ { "cardName":"bankCard1", "cardCode":&quot原创 2018-10-08 15:49:52 · 311 阅读 · 0 评论 -
消息中间件-RabbitMQ,ActiveMQ
RabbitMQ简介及AMQP协议什么是MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取队列中的消息。 RabbitMQ性能优秀,稳定性保障,大型互联网公司都在使用RabbitMQ是使用Erlang语言来编写,并且RabbitMQ是基于AMQ...原创 2018-09-05 08:48:11 · 840 阅读 · 0 评论 -
spring-某些情况下不能注入bean解决
场景1在Java Web应用中采用多线程处理数据,发现Spring注入的服务一直报NullPointerException。使用注解式的声明@Resource和XML配置的bean声明,都报空指针。然后寻找万能的网络寻找帮助,有的说spring因为考虑到线程安全问题,不支持注入,以及spring的bean声明周期,在工程启动时,没有检测到线程中的bean,进行注入。看来只能主动去获取spring...原创 2018-09-27 10:46:23 · 1594 阅读 · 0 评论 -
java-清楚明了的集合
java集合都在java.util里Java的集合类由Collection接口和Map接口派生原创 2018-10-08 09:06:21 · 377 阅读 · 0 评论 -
持久层框架-关系映射框架(ORM)
谈谈Hibernate与Ibatis的区别1、Hibernate偏向于对象的操作达到数据库相关操作的目的;而ibatis更偏向于sql语句的优化。2、Hibernate的使用的查询语句是自己的hql,而ibatis则是标准的sql语句。3、Hibernate相对复杂,不易学习;ibatis类似sql语句,简单易学。性能方面:1、如果系统数据处理量巨大,性能要求极为苛刻时,往往需要人工编写...原创 2018-11-13 19:03:56 · 1335 阅读 · 0 评论 -
spring到mvc到boot
Spring是一个开源框架,处于MVC模式中的控制层,它能应对需求快速的变化,其主要原因它有_一种面向切面编程(AOP)的优势,其次它提升了系统性能,因为通过依赖倒置机制(IOC),系统中用到的对象不是在系统加载时就全部实例化,而是在调用到这个类时才会实例化该类的对象,从而提升了系统性能_。...原创 2018-10-23 21:33:24 · 851 阅读 · 0 评论 -
springboot-表单验证Valid|AOP|统一异常处理
@PostMapping(value = "/girls") public Object addGirl(Girl girl) {//此处不用使用多个@RequestParam("name")原创 2018-10-11 17:59:16 · 3100 阅读 · 0 评论