在不同线程中创建存储库实例之前,您只需调用此方法一次。
来自 SVNRepositoryFactoryImpl javadoc:
在使用库之前在您的应用程序中执行一次,可以通过 svn 协议(通过 svn 和 svn+ssh)使用存储库
这是一个带有 2 个存储库(单线程)的示例代码:
SVNRepositoryFactoryImpl.setup(); // ONCE!
String url1 = "svn://host1/path1";
SVNRepository repository1 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url1));
String url2 = "svn://host2/path2";
SVNRepository repository2 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url2));
在多线程环境中,您可以创建一个实现 Runnable 的类:
public class ProcessSVN implements Runnable {
private String url;
public ProcessSVN(String url) {
this.url = url;
}
public void run() {
SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url));
// do stuff with repository
}
}
并像这样使用它:
SVNRepositoryFactoryImpl.setup(); // STILL ONCE!
(new Thread(new ProcessSVN("http://svnurl1"))).start();
(new Thread(new ProcessSVN("http://svnurl2"))).start();