Skip to content

Instantly share code, notes, and snippets.

@wendal
Created August 29, 2014 07:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wendal/e8564e427c3b34afd228 to your computer and use it in GitHub Desktop.
Save wendal/e8564e427c3b34afd228 to your computer and use it in GitHub Desktop.
nutz演示一下自定义Loader来简化注解事务的配置
package org.nutz.trans.aop;
public interface TransAop {
String NONE = "txNONE";
String READ_UNCOMMITTED = "txREAD_UNCOMMITTED";
String READ_COMMITTED = "txREAD_COMMITTED";
String REPEATABLE_READ = "txREPEATABLE_READ";
String SERIALIZABLE = "txSERIALIZABLE";
}
package org.nutz.trans.aop;
import java.io.StringReader;
import org.nutz.ioc.IocLoader;
import org.nutz.ioc.IocLoading;
import org.nutz.ioc.ObjectLoadException;
import org.nutz.ioc.loader.json.JsonLoader;
import org.nutz.ioc.meta.IocObject;
public class TransIocLoader implements IocLoader {
protected JsonLoader proxy;
public TransIocLoader() {
StringBuilder sb = new StringBuilder("{");
sb.append("txNONE: {type : 'org.nutz.aop.interceptor.TransactionInterceptor',args : [0]},\n");
sb.append("txREAD_UNCOMMITTED:{type : 'org.nutz.aop.interceptor.TransactionInterceptor',args : [1]},\n");
sb.append("txREAD_COMMITTED: {type : 'org.nutz.aop.interceptor.TransactionInterceptor',args : [2]},\n");
sb.append("txREPEATABLE_READ: {type : 'org.nutz.aop.interceptor.TransactionInterceptor',args : [4]},\n");
sb.append("txSERIALIZABLE: {type : 'org.nutz.aop.interceptor.TransactionInterceptor',args : [8]},");
sb.setCharAt(sb.length() - 1, '}');
proxy = new JsonLoader(new StringReader(sb.toString()));
}
public String[] getName() {
return proxy.getName();
}
public IocObject load(IocLoading loading, String name) throws ObjectLoadException {
return proxy.load(loading, name);
}
public boolean has(String name) {
return proxy.has(name);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment