- 浏览: 966680 次
- 性别:
- 来自: 北京
最新评论
-
菜鸟学生会:
Spring与dubbo分布式REST服务开发实战网盘地址:h ...
Dubbo与Spring的配合使用 -
奔跑的码侬:
基于 Spring + Dubbo 开发分布式REST服务实战 ...
Dubbo与Spring的配合使用 -
卧槽这是我的昵称麽:
...
MyBatis的parameterType和resultMap -
xiongzhe90:
学习中,赞一个
idea14使用maven创建web工程 -
zqb666kkk:
nice 非常好!
jquery form向spring mvc提交表单
文章列表
在Mac的home目录创建prod目录时提示: Operation not supported
后在网上查了一下,是Mac的设计初衷不让修改home目录,但也有解决方案。
sudo vim /etc/auto_master
before:
# Automounter master map
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home aut ...
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤:
1. 建立TCP连接
在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同构建Internet,即著名的TCP/IP协议族,因此Internet又被称作是TCP/IP网络。HTTP是比TCP更高层次的应用层协议,根据规则,只有低层协议建立之后才能,才能进行更层协议的连接,因此,首先要建立TCP连接,一般TCP连接的端口号是80。
2. Web浏览器向Web服务器发送请求命令
一旦建立了TCP连接,Web浏览器就 ...
Mac安装MySql
- 博客分类:
- database
1. 首先下载mysql,官网 http://www.mysql.com/downloads/ 下载社区版(“MySQL Community Server”)mysql。
2. 设置环境变量
sudo vi ~/.bash_profile
在.bash_profile里添加
export PATH=$PATH:/usr/local/mysql/bin/
使修改生效
source ~/.bash_profile
3. 测试下mysql命令是否生效, 可以输入 mysql -v 查看mysql版本信息。
MySql全国省市数据
- 博客分类:
- database
在项目中经常会用到全国的省市数据,特地找了一份备份于此。
附件为 MySql的全国省市数据
设计模式六大基础原则
- 博客分类:
- 架构和设计
1. 单一职责原则:(Single Responsibility Pinciple)
一个类只负责一项职责,就负责一件事情。 当超过一项职责需要负责时,需要增加新的类来负责新的职责,而不是在类中增加新的代码。
如果一个类承担的职责太多,就是高度地职责耦合,非常不利于扩展功能。这是非常脆弱的设计。容易发生修改一个地方而影响其他地方的情况。
遵循单一职责原则的优点:
降低类的复杂度
提高类的可读性,提高系统的可维护性
变更引起的风险降低
2. 里氏代换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。
工厂方法模式定义:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to subclasses。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的 ...
面向抽象编程和面向接口编程
- 博客分类:
- 架构和设计
面向接口编程,是指面向超类型编程,比如抽象类和接口,或super class,这样的话,可以按照约定进行获取数据,不用关心内部处理的细节,封装了业务逻辑,维护了系统的稳定性和系统间的低耦合性。
面向抽象编程,是指面向抽象角色编程,而不面向具体类编程。好处是程序可以灵活地增加功能,良好的解耦性、可扩展性,符合“开-闭”准则。
抽象类:
类中有抽象方法,继承类必须实现这些抽象方法。(也可以没有抽象方法,而只是实现该类而已,这是纯类型抽象)。
接口:
类中的方法全部为抽象方法,变量为静态变量,接口的方法封装了不同的行为,接口的实现类必须实现这些抽象方法。
继承是“a ...
volatile的线程安全性
- 博客分类:
- 多线程
volatile 关键字可以及时把当前线程对变量的修改写入主内存,每个线程读取变量值的时候都必须从主内存读取,这样做保证了多线程环境的可见性,但其安全性(原子性)在多线程环境并不能获得保证。
下面 ...
单例模式在多线程环境下的实现
- 博客分类:
- 多线程
在多线程环境中,单例模式可能会创建多个实例,如果使用synchronized关键字来修饰getInstance方法,又造成访问该方法的性能变慢。
如何解决这个问题?
1. 采用急切实例化,直接把属性实例化。
private static Singleton uniqueInstance = new Singleton();
2. 使用“双重检查加锁” (DCL )判断是否已实例化:
/**
* 线程安全的单例类, 使用”双重检查加锁“,在getInstance()中减少使用同步。 这种方法不适 ...
当使用MyBatis的时候,需要每个表建立一个Entity类,还要创建一个Mapping文件,如果表的数量少还好说,当表的数量多的时候,而且以后还会增加的时候,手动创建这些文件就成了一个繁琐而又重复的工作,根据“能用工具不手写”的原则,可以根据Mapping xml的格式,用程序来生成这些对应的文件。
这里是一个生成Mapping XML文件的demo code:
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import jav ...
MetaData意即元数据,是描述其他数据的数据。
1.ResultSetMetaData
封装了描述结果集(ResultSet)的数据,描述ResultSet对象的数据包括列名、列类型、列数、表名等信息
ResultSet里包含一个getMetaData()方法,该方法返回该ResultSet对应的ResultSetMetaData对象。一旦获得了ResultSetMetaData对象,就可通过ResultSetMetaData提供大量的方法来返回ResultSet的描述信息,常用的方法有如下三个:
MyBatis的mapping.xml中有两个重要的属性:parameterType和resultMap属性(parameterMap现在不建议使用)
parameterType用来指定传入参数的类型,比如Bean或Map\List。
<configuration>
<typeAliases>
<typeAlias alias="Product" type="com.zainagou.supplier.entity.Product"/>
</typeAliases> ...
servlet3的异步特性
- 博客分类:
- 多线程
Servlet3 比 Servlet2.4最大的进步应该是异步支持了,不再像过去那样,对于每个请求,只有一个线程在处理,必须等待这个线程阻塞处理完毕后,才能给 client 返回响应。
使用异步处理,新开一条线程处理耗 ...
Maven仓库镜像
- 博客分类:
- basic of java
Maven中央服务器地址为 http://maven.apache.org,因为全球Java程序员都访问这个服务域名,压力很大,加上国内GFW的block,在天朝访问会更慢。
故镜像服务器有加速访问的效果。
操作:
在settings文件的mirrors节点中,增加下面的mirror:
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http:/ ...
当数据库中表有多个的时候,写数据库表对应的entity类是一个工作量不小的事情,所以能自动化把数据表生成对应的Java类,有一定的意义(Save Time):
/**
* Created by jiangzhiqiang on 16/3/24.
*/
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java. ...