- 博客(131)
- 收藏
- 关注
原创 Spring配置AOP切入点execution详解
例:execution (* com.sample.service..*. *(..))整个表达式可以分为五个部分:1、execution()::表达式主体。2、第一个*号:表示返回类型, *号表示所有的类型。3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service包、子孙包下所有类的方法。4、第二个*号:表示类名,*号表...
2019-06-12 16:23:00 1157
转载 Redis缓存穿透方案
转自:https://blog.csdn.net/muyi_amen/article/details/80229647解决Redis缓存穿透方案缓存技术可以用来减轻数据库的压力,提升访问效率。目前在企业项目中对缓存也是越来越重视。但是缓存不是说随随便便加入项目就可以了。将缓存整合到项目中,这才是第一步。而缓存带来的穿透问题,进而导致的雪蹦问题都是我们迫切需要解决的问题。本篇文章将我平时项目中...
2019-03-03 08:31:13 223
原创 Docker Tomcat应用日志时间和容器时间不一致解决办法
说明:1.在docker容器和系统时间不一致是因为docker容器的原生时区为0时区,而国内系统为东八区。2.还有容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差。 也就是容器时间和系统时间一致,但是部署的应用和容器时间不一致。Tomcat中部署java应用为例。1.解决docker容器与宿主机时间不一致问题:在启动容器时,把系统时间挂载到容...
2019-01-23 18:36:21 826
原创 芝诺悖论之极限
曾经有个古希腊的科学家提出了这样一个问题:一个人和一个乌龟赛跑,人的速度是乌龟的10倍,但是由于乌龟跑得慢,所以让乌龟在他前面100米处,然后人和乌龟同时开跑。这时就会出现这样的情景:当人向前跑了100米时,人到达了乌龟原来所在的位置,然而乌龟已经爬出去了10米,乌龟还在人的前面;当人又继续向前跑了10米时,又到达了乌龟所在的位置,而这时乌龟又向前爬了1米,乌龟还是在人的前面!而这样的过程可以...
2018-08-17 16:21:55 2029 3
转载 缓存那些事
前言一般而言,现在互联网应用(网站或App)的整体流程,可以概括如图1所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时我们的应用服务器和数据库服务器所做的计算也越来越多。但是往往我们的应用服务器资源是有限的,且技术变革
2017-06-28 14:36:25 443 1
转载 Java Web项目在Mac系统上启动时提示nodename nor servname provided的解决办法
今天在Mac系统上启动Java Web项目的时候,提示了java.net.UnknownHostException:yangxiaomindeMacBook-Pro.local nodename nor servname provided类似的错误,然而同样的项目在windows的环境下是可以正常启动运行的。然后在网上找到了解决办法,虽然是英文的,但是根据说的做法,确实可以解决这个问题。现在将这个问题的解决办法分享给大家。
2016-11-24 11:07:54 7409 3
原创 在mac系统安装Apache Tomcat的详细步骤
今天就简单说下在mac上进行tomcat的安装;第一步:下载Tomcat这里小编下载的tomcat version:7.0.73直接上下载地址:http://tomcat.apache.org/download-70.cgi直接下载如下选中即可:第二步:放入指定目录下载完成后 ,然后随意放目录吧,这里小编放入 /usr/local/ sudo mv ~/Downloads/apac
2016-11-22 18:11:26 487 3
原创 使用Spring的@Scheduled实现定时任务
Spring配置文件xmlns加入xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation中加入 http://www.springframework.org/schema/task http://www.springframework.org/schema/ta
2016-11-09 16:05:04 751 2
原创 JUnit-4.12使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
今天尝试使用JUnit,下载了最新的JUnit版本,是4.12,结果尝试使用发现总是报Java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网又看了一下,结果发现这样一段话:junit.jar: Includ
2016-11-08 17:27:10 6724 2
原创 【maven学习】——(1)简单入门
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描
2016-09-09 11:23:56 521 3
转载 ConcurrentHashMap原理分析
集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅
2016-08-31 19:32:59 244
转载 40个Java集合面试问题和答案
Java集合框架为Java编程语言的基础,也是Java面试中很重要的一个知识点。这里,我列出了一些关于Java集合的重要问题和答案。1.Java集合框架是什么?说出一些集合框架的优点?每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,
2016-08-31 19:29:05 355 1
转载 深入理解HashMap
Hashmap是一种非常常用的、应用广泛的数据类型,最近研究到相关的内容,就正好复习一下。网上关于hashmap的文章很多,但到底是自己学习的总结,就发出来跟大家一起分享,一起讨论。 1、hashmap的数据结构 要知道hashmap是什么,首先要搞清楚它的数据结构,在Java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本
2016-08-30 16:11:12 390 3
原创 【JVM】——GC机制之G1收集器
在上篇文章《【JVM】——GC机制之收集器》中,简单的介绍了几种收集器,今天再详细的介绍一下G1收集器。 如果说收集算法是内存回收的方法论,那么垃圾回收机器就是内存回收的具体实现。HotSpot虚拟机所包含的所有收集器如图所示。 上图展示了7中作用于不同分代的收集器,如果两个收集器之间
2016-08-30 11:34:34 713 1
原创 【JVM】——GC机制之收集器
在上一篇文章《【JVM】——GC机制之GC算法》中,介绍了GC的一些算法,都是一些理论的知识,今天小编介绍一下GC的收集器,说明一下算法在GC中的使用以及GC涉及的一些参数设置。 一、GC主要有三种收集器 1、串行收集器 GC是最古老、最稳定的一种GC机制,效率相对较高。 参数命令:-XX:+UseSerialGC 适用
2016-07-27 11:45:58 494 1
原创 【JVM】——GC机制之GC算法
垃圾回收简介 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对JVM(Java Virtual Machine)中的内存进行标记,并确定哪些内存需要回收,根据一定的回收策略,自动的回收内存,永不停息(Nerver Stop)的保证JVM中的内存空
2016-07-23 17:43:15 532 2
原创 【JVM】——简单入门之内部组成
一、JVM JVM是Java Virtual Machine的简称,即java虚拟机。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 Java语言“一次编译,到处运行”的特点就是因为java虚拟机。一般的高级语言要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JVM后,Java语言在不同平台上运
2016-07-23 11:48:17 626 5
原创 【redis】——简单入门之安装
一、简单介绍 Redis是一个开源的、高性能的Key-Value存储系统,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)、hash(哈希类型)。与memcached类似,为了保证效率,数据都是缓存在内存中。 Redis和memcached比较: ①redis可以用
2016-07-19 16:37:51 622
原创 【mybatis】——缓存
一、MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Session,当 Session flush 或 close 之后,该Session中的所有 Cache 就将清空。 2. 二级缓存与一级缓存其机制相同,默认也是采用 Pe
2016-06-30 23:58:48 410
原创 【mybatis】——简单程序示例
上篇文章中,简单介绍了mybatis框架,大家对框架已经有了简单的了解,今天小编从一个简单的Demo入手,说明mybatis的使用。
2016-06-30 23:51:27 417
原创 2016~六月英语·活动·成长
六月,It's so Big. 六月负责人,这就意味着有很多责任和义务。除了保证本组的学习热情以外,还要兼顾整个集体的情况。就简单的说一说,自己作为负责人的心路历程吧、
2016-06-30 22:15:33 422
原创 【mybatis】——快速入门
MyBatis的前身叫iBatis,本是apache的一个开源项目,2010年这个项目由apache software foundation 迁移到了googlecode,并且改名为MyBatis。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。他消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和J
2016-06-21 17:27:19 526 2
原创 【java线程】——(1)线程创建
进程中负责程序执行的执行单元。一个进程中至少有一个线程。 在掌握如何创建线程之前,先要了解一下什么是进程。进程(process)本质上是一个执行的程序。操作系统引入进程以后就允许计算机可以同时运行两个或两个以上的程序,这就是多任务的处理模式。每一个进程都有自己独立的一块内存空间、一组系统资源。在进程概念中,每一个进程的内部数据和状态都是完全独立的。例如,基于进程的多任务处理功
2016-05-31 15:17:58 429 5
原创 【SSH】——Hibernate(5)关联映射之双向映射
在上一篇文章【SSH】——Hibernate(4)关联映射之单项映射中,介绍了关联映射的单向映射,今天通过hbm.xml配置文件来介绍一下关联映射的双向映射。 一)一对一关联映射 对比单向一对一映射,需要在IdCard加入标签,它不影响,只影响加载。如下图: 双向一对一主键映射
2016-05-28 15:42:34 623 4
原创 【SSH】——Hibernate(4)关联映射之单向映射
在上一篇【SSH】——Hibernate(3)实体映射中,已经提到了,ORM功能的实现,主要文件有映射类(*.java),映射文件(*.hbm.xml)和配置文件(*.property/.cfg.xml)。接下来通过三个文件,对映射类的实现进行分析。 关联映射主要分为两大类:单向关联和双向关联。今天主要说一下单向关联。 一)一对一关联映射 两
2016-05-28 15:22:31 469 4
原创 【SSH】——Hibernate(3)实体映射
实体映射技术作为类与表之间的联系纽带,在ORM实现中起着至关重要的作用,对于我们而言,映射关系更多的体现在配置文件的维护过程中。 ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现,这样开发人员就可以把对数据库的操作转化为对这些对象的操作。Hibernate正是实现了这种思想,达到了方便开发人员以面向对象的思想来实现对数据库的操作。
2016-05-21 11:47:20 896 1
原创 【SSH】——Hibernate(2)get和load的区别
Hibernate中有两个极为相似的方法get()与load(),他们都可以通过指定的实体类与ID从数据库中读取数据,并返回对应的实例,小编从几个方面分析一下两者的不同。 1.返回结果 load方式检索不到的话会抛出org.hibernate.ObjectNotFoundException异常 get方法检索不到的话会返回null
2016-04-29 21:06:19 526 8
原创 【SSH】——Hibernate(1)持久化对象转换
一、Hibernate生命周期 实体对象的生命周期在Hibernate应用中是一个很关键的概念,正确的理解实体对象的生命周期将对我们应用Hibernate做持久层设计起到很大的作用.而所谓的实体对象的生命周期就是指实体对象由产生到被GC回收的一段过程.在这过程中我们需要理解的就是实体对象生命周期中的三种状态.瞬时状态(Transient)、持久化状态(Persistent)和
2016-04-26 15:48:45 649 16
原创 Cookie VS session
一、cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。 同时我们也看到,由于在服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的,或者用URL地址重写的方法。 二、c
2016-04-25 19:57:01 512 9
原创 【问题解决】——virtualbox安装快完成的时候立即回滚,并弹出严重错误
在学习Docker过程中,安装时,virtualbox安装时回滚rollback,并弹出严重错误,解决方案如下: a.打开任务管理器 b.启动服务里面的两个服务 [1]Device Install Service [2]Device Setup Manager 【PS】也可以直
2016-04-25 15:18:12 11955 10
原创 【AngularJS】——核心特性之服务
在之前几篇文章中,提到了AngularJS几个核心特性,今天继续来看看ng的服务(service)。 1、简单介绍 首先服务是一个单例,即无论这个服务被注入到任何地方,对象始终只有一个实例。其次这与我们自己定义一个function然后在其他地方调用不同,因为服务被定义在一个模块中,所以其使用范围是可以被我们管理的。ng的避免全局变量污染意识非常强。
2016-03-30 15:29:36 637 3
原创 【AngularJS】——核心特性之指令の执行机制
上篇文章《【AngularJS】——核心特性之指令》简单的介绍了一下指令的类型和简单应用。那么,指令具体是怎么运行的呢?让我们来一起揭开指令的神秘面纱。 我们知道,指令的本质其实是一个替换的过程。指令的核心步骤就是compile(编译)和link(连接)。 1、Link函数 指令生成出的模板其实没有太多意义,除非它在特定的scope下编
2016-03-26 14:25:47 1326 2
原创 【AngularJS】——核心特性之指令
在前两篇文章中介绍了AngularJS三大特性:MVC框架、模块化和依赖注入以及路由机制,今天小编介绍一下AngularJS的另一大特性:指令。 我们都知道,AngularJS通过指令对HTML达到了一个拓展的作用。指令分为两种,一种是 内置指令,为应用添加功能;另一种是自定义指令,用户可自己定义相关内容。 1、内置指令 内置指令是指带有前
2016-03-26 10:23:07 1452 1
原创 【AngularJS】——核心特性之路由
在上一篇文章【 AnglularJS】——几大核心特性(一)中,分享了AngularJS的两个特性:MVC和ng的模块化。今天介绍一下ng的路由机制。 1、AngularJS路由介绍 AngularJS路由功能主要实现一个视图跳转的功能,合理管理用户在使用过程中看到的界面。通过路由的设置,根据当前访问的URL展示对应的视图。 ng的路由机制
2016-03-23 21:50:38 1029 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人