- 浏览: 50987 次
- 性别:
- 来自: 深圳
最新评论
文章列表
Hibernate merge说明
- 博客分类:
- 数据持久化框架
通常下面的场景会使用update()或saveOrUpdate():
程序在第一个session中加载对象
该对象被传递到表现层
对象发生了一些改动
该对象被返回到业务逻辑层
程序调用第二个session的update()方法持久这些改动
saveOrUpdate()做下面的事:
如果对象已经在本session中持久化了,不做任何事
如果另一个与本session关联的对象拥有相同的持久化标识(identifier),抛出一个异常
如果对象没有持久化标识(identifier)属性,对其调用save()
如果对象的持久标识(identifier)表明其是一个新实例化的对 ...
一、Null Undefined 0 “0”等变量用作条件的值如下:
1. Null Undefined 0 三种场景下是false
2. 其它场景下为true
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
//undefined false
var str;
if(str){
alert("未初始化:" + true);
...
mysql数据库环境搭建
- 博客分类:
- Mysql数据库
一.配置文件说明
1.#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/Program Files/MySQL/MySQL Server 5.5/"
2.#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
3.#update innodb file type
innodb_file_pe ...
redis常规配置说明
- 博客分类:
- Redis中间件
一、Redis.conf配置文件详解
#redis.conf
# Redis configuration file example.
# ./redis-server /path/to/redis.conf
################################## INCLUDES ###################################
#这在你有标准配置模板但是每个redis服务器又需要个性设置的时候很有用。
# include /path/to/local.conf
# include /path/to/other.conf
...
1、JVM的组成部分
类加载器 执行引擎 运行时数据区 本地接口
2、JVM的结构
Java虚拟机在执行Java程序的过程中会把它管理的内存分为若干个不同的数据区域。这些区域有着各自的用途,一级创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范》中规定,jvm所管理的内存大致包括以下几个运行时数据区域,如图所示:
一、什么是跨域问题:跨域问题,是因为浏览器的同源策略对ajax请求进行阻拦了。实际上有两种情况:1、浏览器会发送请求到目标服务器,且也受到目标服务器的响应,但是浏览器对非同源请求的返回结果做了拦截。2、浏览器发一个预请求,根据预请求的响应结果来判断是否发送最终的请求二、跨域问题的由来,限制CSRF攻击三、跨域问题的解决办法1、通过nginx解决跨域2、用cros技术解决resp.setHeader("Access-Control-Allow-Origin", "*");
springmvc的初始化及请求处理流程
- 博客分类:
- Spring框架
一、springmvc的初始化流程
1. web应用启动时初始化DispatcherServlet
2. 调用父类的父类HttpServletBean的init()方法,把配置的初始化参数设置到DispatcherServlet中
3. 调用父类FrameworkServlet的initServletBean()方法,创建springMVC容器并初始化容器、关联spring父容器
4. 调用DispatcherServlet的onRefresh方法进行DispatcherServlet的策略组件初始化工作,url映射初始化,文件解析初始化,运行适配器初始化等等。
二 ...
spring初始化流程
- 博客分类:
- Spring框架
一、spring初始化流程
概要说明:
1、web容器启动,注册ContextLoaderListener 监听
2、容器加载完成会回调监听的方法
1)创建WebApplicationContext容器
2)加载spring配置文件
3)解析xml并完成bean的注入
3、web容器停止的时候销毁Context容器
详细流程如下:
1.spring容器初始化的整个流程图如下
2.创建WebApplicationContext对象流程如下
spring配置示例
- 博客分类:
- Spring框架
<?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.sprin ...
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。
DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。
具体如下图:
一:每个Bean都有一个代理
<?x ...
Redis集群
基本介绍
Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施installation。
Redis 集群不支持那些需要同时处理多个键的 Redis 命令, 因为执行这些命令需要在多个
一、集群规划
搭建一个集群我们需要考虑如下几个问题:
1. 我们需要多大规模的集群?
2. 集群中的节点角色如何分配?
3. 如何避免脑裂问题?
4. 索引应该设置多少个分片?
5. 分片应该设置几个副本?
下面我们就来分析 ...
mysql分布式id生成策略
- 博客分类:
- Mysql数据库
1. 数据库自增长序列或字段(分布式的场景采用添加步长的方法)最常见的方式。利用数据库,全数据库唯一。首先,数据库自增ID需要锁表而且,UUID的生成强依赖于数据库,每次获取UUID都需要经过一次数据库的调用,性能损 ...
/**
* Copyright (c) AVIT LTD (2016). All Rights Reserved.
* Welcome to www.avit.com.cn
*/
package com.avit.ipmp.common.utils;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.ArrayList;
import java.util.List;
import java.util.SortedMap;
import java.util.Timer;
import java. ...
/**
* 通过轮训算法选举mqttserver节点
* @param nodeList
* @return
*/
private NodeInfo getNodeByRoundRobin(List<NodeInfo> nodeList) {
Assert.notEmpty(nodeList,"nodeList can not be empty !");
int index=getNextInteger()%nodeList.size();
return nodeList.get(index);
}
private int getNextInteg ...