- 博客(22)
- 收藏
- 关注
原创 Spring的父子容器
    在搭建 SpringMVC 过程的时候,通常在 web.xml 中配置 Spring 的监听器,也要注册 SpringMVC 的前端控制器 DispatchServlet,当然也有两个配置文件,spring 的 applicationContext.xml 和 SprinMVC 的 springmvc.xml,并且 applicationContex...
2018-03-31 20:43:29 1252
原创 MySQL中left join on后面的条件与where后面的条件的区别
表:A、B A 字段:id,name B 字段:id,a_id 关键名词:主表、关联表、关联条件、筛选条件 例子:# 主表:A、关联表:B、关联条件:A.od=B.a_id、筛选条件:B.id=1A left join B on A.id=B.a_id and B.id=1结论:表 A 和表 B 的连接依靠关联条件主表的筛选条件,应该放置在 where 条件后on ...
2018-03-29 12:53:41 16894 11
原创 Lock锁的使用模板及API解释
实现同步,我们可以使用 synchronized ,也可以使用 Java SE 5 之后新增的 Lock 接口。synchronized 和 Lock 的区别1)synchronized 是 Java 中的关键字;Lock 是个接口 2)synchronized 在发生异常时,会自动释放锁;Lock 必须手动释放锁,应该使用 try…finally ,避免死锁 3)Lock...
2018-03-28 20:41:03 1794
原创 Maven的聚合和继承
    聚合:当一个服务有多个模块组成时,为了满足一次命令构建多个模块,需要创建一个额外的模块,通过这个额外的模块来构建整个项目,这个操作就是聚合。     继承:当聚合了多个模块之后,各个模块的 POM 中可能会有很多相同的配置,可以通过子项目继承父项目的配置消除配置重复,这个就是继承。子项目是一个
2018-03-28 20:37:13 1287
原创 Spring MVC之mvc:resources处理静态资源
    由于早期的 SpringMVC 不能很好地处理静态资源,所以在 web.xml 中配置 DispatcherServlet 的请求映射时,往往采用 *.do、*.xhtml 等方式,这就决定了请求 URL 必须是一个带后缀的 URL,而无法采用真正 REST 风格的 URL。  &
2018-03-28 10:33:16 11930
原创 Freemarker生成商品详情静态页面
    Freemarker 模板引擎技术,是一种基于模板和数据生成可用的文本的工具。例如,我们可以通过定义 JavaBean 对象的格式,从数据库提取字段名称、类型,生成 JavaBean 对象。我们还可以用它生成静态的 html 页面,提供访问效率,例如电商网站商品详情页面,布局格式相同,只是内容不一样。    &
2018-03-27 21:00:10 2776
原创 Java线程的6种状态、中断、线程间通信
进程:系统中能独立运行并作为资源分配的基本单位,是一个独立运行的活动实体 线程:线程是进程中的一个实体,是系统调度和分派的基本单位Java 线程的6种状态 Java 线程在运行的生命周期中可能有6种不同的状态,在某个时刻,线程只能处于其中的一个.
2018-03-24 13:33:54 1321
原创 Java 原子操作的实现
Java 原子操作分为处理器实现和 Java 程序实现。处理器实现: 处理器使用基于对缓存加锁或总线加锁的方式实现多处理器之间的原子操作。 (1)第一个机制是使用总线锁保证原子性。
2018-03-22 13:22:50 1424
原创 synchronized 的实现原理与应用
synchronized 是多线程并发编程中的一员,被称为重量级锁,但在 Java SE 1.6 对 synchronized 进行了各种优化,引入偏向锁和轻量级锁,减少了获取锁和释放锁带来的性能消耗。synchronized 实现同步的基础 Java 中的每一个对象都可以作为锁。具体表现为以...
2018-03-22 11:47:34 1296
原创 volatile 原理
定义:Java 允许线程访问共享变量,为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。volatile 如何确保共享变量的可见性? 有 volatile 修饰的共享变量进行写操作时,它的汇编指令中会有 lock 字样,称为 Lock 前缀。Lock 前缀的指令在多核处...
2018-03-22 09:41:16 1301
原创 MySQL case when 用法
MySQL 的 case when 的语法有两种:CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] ENDCASE WHEN [expr] THEN [result1]…ELSE [default] END这两种语法有什么区别呢?CASE [col_name] WHEN [value1] THEN [resul...
2018-03-19 15:09:13 157085 21
原创 MySQL使用exists优化in查询
    MySQL 优化时,总是说在某些情况下要用 exists 代替 in,下面我会介绍一下,exists 替换 in 时需要注意的问题。1、创建表结构# 用户信息表CREATE TABLE `user_info` ( `id` CHAR (36) NOT NULL, `name` VARCHAR (20) NOT NULL,...
2018-03-19 11:46:08 4198
原创 Log4j详解及demo
    Log4j 是 Apache 的一个开源项目,通过使用 Log4j,我们可以控制
2018-03-18 15:50:39 1563
原创 MySQL 修改有数据的数据库的字符集
我们创建表结构时可能没有指定表的字符集,导致数据乱码。如果之前的数据库中存在数据,那么不能直接用命令修改字符集,如果直接修改,只会对新创建的表或记录有效,原有数据还是之前的字符集。以 latin1 字符集的数据库为例,修改成 utf8 字符集的数据库步骤: 1、导出表结构mysqldump -uroot -p --default-cha...
2018-03-15 12:53:24 3285
原创 Cookie 和 Session的介绍和区别(附带CookieUtils工具类)
Cookie    Cookie 是由服务器发给客户端的特殊信息,客户端将这些信息以文本文件的形式存放在本地,客户端每次向服务器发送请求时都会带上这些信息。从 HTTP 协议的角度理解 Cookie 的话,它实际上是一个通行证,弥补了 HTTP 协议是无状态的不足,服务器可以通过 Cookie 确认客户的身份。    &a
2018-03-14 16:05:41 1414 1
原创 Nginx+Keepalived实现nginx的高可用集群搭建
    Keepalived 是一款高可用的软件,可以自动侦测服务器状态、移除故障服务器、切换到正常运行的服务器、添加恢复后的服务器到集群中。Keepalived 基于 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议) ,主要在 IP 层、TCP 层和应用层起作用。IP 层:定期向服务器集群中的服务器发...
2018-03-08 17:41:28 1430
原创 Maven 依赖和生命周期
依赖范围 在 Maven 中,存在有三种 classpath,分别为编译 classpath、测试 classpath 和运行时 classpath,即 POM 中引入的依赖在编译、测试和运行阶段根据配置的依赖范围,决定是否将依赖引入运行时环境。依赖范围就是来控制依赖与这三种 classpath 的关系。compile:编译依赖范围,默认的依...
2018-03-05 13:59:31 2245
原创 Redis集群
Redis3.0 开始支持集群 Cluster所有 redis 节点内部使用二进制协议传送数据,通过 ping-pong 机制,判断节点是否存活每个节点的宕机是通过集群中超过半数的节点检查失效时才生效可客户端与 redis 节点直接连接,不需要通过代理层,客户端连接集群中任意一个可用节点即可Redis-cluster 把所有的物理节点映射到[ 0-16383 ]slot 插槽上,clu...
2018-03-02 10:58:17 2173
原创 Redis主从复制
安装redis下载redis压缩文件redis-3.2.11.tar.gz使用xshell执行rz命令上传文件tar -zxvf redis-3.2.11.tar.gz 解压文件进入redis目录,执行make命令如果出现错误,可能是因为linux下没有安装gcc编译器(可能出现)安装gcc:yum install gcc-c++(如果需要)gcc安装成功后,再执行make命令(...
2018-03-01 21:41:48 1255
原创 Tomcat服务器优化
配置 Tomcat 的用户名和密码    如果想在 Tomcat 的主页查看服务器的状态和内存配置,需要配置管理员的用户名和密码。   &
2018-03-01 15:55:19 1325
原创 linux下执行常用命令出现:command not found
在 linux 下执行类似与 ls、ll、vim 等命令时出现 command not found,并且执行 source /etc/profile 出现 bash: id: command not found bash: tty: command not found 可能是因为 /etc/profile 下配置环境变量时出现了问题,例如:export JAVA_HOME=/usr/l...
2018-03-01 14:25:31 30749 2
原创 linux/centOS 下安装 ngnix
    Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,它是由 C 语言开发,建议在 Linux 下运行。Nginx 需要的安装环境如果不知道 linux/centOS 上是否安装了下面的软件,那么先尝试安装 Nginx ,如果安装的过程中出现问题,那么根据错误提示,安装相应的必要环境,例如:...
2018-03-01 11:46:21 16064 3
空空如也
postman不用登陆的版本
2024-03-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人