- 浏览: 91561 次
- 性别:
- 来自: 上海
最新评论
-
hvang1988:
...
Spring --- Transaction Management -
Branding:
谢谢,原来总是记不住,这下知道原理了
“Hello Java” -- Java安装
文章列表
一)什么是threadlocal
java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的局部变量。
1)ThreadLocal不是线程,是线程的一个变量
2)为每个线程维护一个副本(姑且成为‘拷贝’容易理解),让每个线程独立访问
3)ThreadLocal适用于资源共享但不需要维护状态的情况,也就是一个线程对资源的修改,不影响另一个线程的运行;这种设计是‘空间换时间’,synchronized顺 ...
一) annotation的作用
annotation之于程序代码的作用大致可以归结为以下三点:
1) 给编译器(compiler)提供辅助信息,加强纠错和错误处理。比如注解override的函数是否符合override标准,某些warning是否抑制不抛等等。
...
一)数据类型的分类
Oracle支持的数据类型可以分为四个基本种类:字符数据类型、数字数据类型、日期数据类型以及表示其它数据的数据类型。
属于字符数据类型的有: char/varchar/varchar2/nvarchar/nvarchar2/long
属于数字数据类型的有: number
属于日期数据类型的有: date/timestamp
属于其它数据类型的有: raw/long raw/rowid/CLOB/NCLOB/BLOB/BFILE
二)字符数据类型
1)char
char的长度是固定的,比如说,你定义了char(20),即使你你 ...
一)Java错误异常的分类
如图,java中Throwable类的子类层次结构也就是java中错误异常分类的策略。首先是将错误异常细分为错误(Error)和异常(Exception)两大类。
错误指的是一个合理的应用程序不能截获的严重的问题。大多数都是反常的情况,比如内存溢出。而异常则是指由于java的语法错误和语义错误而引起的程序异常,它基本是可以通过修改或优化你的代码来改正的。
对于异常,我们还进一步细分为checked exception和unchecked exception(runtime exception)。 其中checked exception表示的是 ...
一)进程与线程
线程是程序运行的基本执行单元。当操作系统(不包括单线程的操作系统,如微软早期的DOS)在执行一个程序时,会在系统中建立一个进程,而在这个进程中,必须至少建立一个线程(这个线程被称为主线程)来作为这个程序运行的入口点。因此,在操作系统中运行的任何程序都至少有一个主线程。
进程和线程是现代操作系统中两个必不可少的运行模型。在操作系统中可以有多个进程,这些进程包括系统进程(由操作系统内部建立的进程)和用户进程(由用户程序建立的进程);一个进程中可以有一个或多个线程。进程和进程之间不共享内存,也就是说系统中的进程是在各自独立的内存空间中运行的。而一个进程中的线程可以共享系 ...
一)spring的事务管理
事务管理并非spring独有,用过JDBC hibernate的朋友都知道,这些api和框架都提供了自己的事务管理机制。那么spring的事务管理又有些什么与众不同支持呢?它的优点又有哪些呢?总结来说大概有以下这么几点:
1' 为不同的事务API提供一致的编程模型,如Java Transaction API (JTA)、JDBC、Hibernate、JavaPersistenceAPI(JPA)以及JavaDataObjects(JDO)
2' 支持declarative transaction management(声明式事务管理)
3' 为一些原本比较复杂 ...
Spring AOP APIs
一)一个最简单的例子
public interface MessageSender {
void send(String message);
}
public class HttpMessageSender implements MessageSender {
public void send(String message) {
System.out.println("Send Message[" + message + "] by http.");
}
}
p ...
这篇文章先补充两个AOP的概念:
一)引入(Introduction)
什么是引入?引入是在不修改目标对象的源代码的情况下,为目标对象增加方法和属性一种技术手段。
比如你有如下目标对象:
public class DoThingBean {
public void DoOneThing(){
System.out.println("Do one thing!");
}
}
我们现在要在不修改DoOneThing的基础上,对其增添一个名叫doOtherThing()的方法。那么我们该如何将doOtherTh ...
一)Spring AOP---schema-based approach
Spring AOP的配置方式,我强烈推荐这篇博客http://pandonix.iteye.com/blog/336873。作者对AOP的概念和Spring AOP的xml配置实现都做了清晰的介绍。我想我是不可能做更好的介绍了...这里就再作几点补充说明吧~~ ...
一)什么是AOP
AOP(Aspect Oriented Programming) 面向切面编程(也叫面向方面)。众所周知,我们的编程语言从最初的面向过程编程(C)发展到了面向对象编程(C++,Java),而面向方面编程则可以视为对其编程理念的又一次发展。
...
一)什么是SpEL
SpEL -- Spring Expression Language. Spring的表达式语言。举个最简单的例子:
ExpressionParser parser =new SpelExpressionParser();
Expression exp = parser.parseExpression("'Hello World'");
String message = (String) exp.getValue();
最后 message的值就是 Hello World, 表达式中的单引号''就是表达String类型的一种格式。另外值得注 ...
一) BeanWrapper
BeanWrapper这个类一般不会被Spring的使用者直接调用,而是使用DataBinder和BeanFactory这两个类是间接被调用的。但是知道BeanWrapper的使用方式对于理解Spring的数据绑定机制还是十分用益的。下面我们就来看个BeanWrapper被直接调用的例子:
//首先是两个对象类Company Employee
public class Company {
private String name;
private Employee managingDirector;
public String getName ...
一) Validator接口
Spring的Validation功能设计很简单。使用Validator功能即可:
public class Person {
private String name;
private int age;
// the usual getters and setters...
}
public class PersonValidator implements Validator {
/**
* This Validator validates just Person instances
*/
public boolea ...
一)如何使用spring中的resource
Spring的资源文件访问功能使用起来十分简单,调用ApplicationContext.getResource的方法即可:
Resource template = ctx.getResource("some/resource/path/myTemplate.txt");
Resource template = ctx.getResource("classpath:some/re ...
承接上两篇IOC的介绍,我们继续...
9)ApplicationContextAware 和 BeanNameAware
加载Spring配置文件时,如果Spring配置文件中所定义的Bean类,如果该类实现了ApplicationContextAware接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware接口中的
public void setApplicationContext(ApplicationContext context) throws BeansException
方法,并且自动可获得ApplicationC ...