`
文章列表
为了解决在同一个JVM中启动多个peer进行测试而带来的烦恼,通过大量收集资料最后找到一种可行的解决方案,而由于国内博客系统未提及相关解决方案,特贡献出来,以免大家少走弯路。 在我们开始相对两个或则更多的peer的交互进行测试时,都会遇到下面这种情况: net.jxta.exception.PeerGroupException: Only a single instance of the World Peer Group may be instantiated at a single time. 我们可以通过采用自定义类加载器的方式,在同一个JVM中对同一个类定义多个副本,并创建该类的 ...
@Controller @RequestMapping("/user") public class UserController { private UserRepository userRepository; @Autowired public UserController(UserRepository userRepository) { this.userRepository = userRepository; } /** * @param username * ...
刚才在看代码时,看到了一个有趣的单例类懒加载模式,特贴出来供大家一起分享.   public class LazySingleton { private LazySingleton() { } public static LazySingleton getInstance() { return Holder.INSTANCE; } private static class Holder { public static final LazySingleton INSTANCE = new LazySi ...
你应该创建一个继承于Service的类来定义一个特定的Service组件。你可能需要重写一些回调函数(onCreate,onDestroy)来管理Service的生命周期或者根据需要重写相应的回调函数(onStartCommand,onBind)来提供给外部应用程序使用该Service的Interfaces。 如果通过Context.startService()方法来启动一个Service组件,则该Service组件的onStartCommand的方法将会被调用,一个被启动的Service可以通过调用Context.stopService()或者Service.stopSelf()方法来停止当 ...
一个Service是在后台运行并执行一些费时的操作的业务组件,它对用户而言是不可见的。它总是在背后默默的支持整个系统的运作而提供相关的功能。一个被启动的Service在程序退出时,该Service有可能仍保持运行的状态。 Service允许各进程之间进行通信(IPC)。 使用Service的用户可以采用两种形式来安排Service完成相应的任务。   使用Context.startService方法启动一个Service.一个被启动的Service即使它的启动者被销毁后,该服务对象可能仍然在后台运行。采用该种方式使用服务组件适用于执行单任务且无需返回任何结果。一个被启动的Service ...
     一个Activity就是提供给用户为完成某项任务而进行交互的界面,如:通电话、照相、发邮件等。 每个Activity都有属于自己的Window来绘制自己的显示区域,Activity的窗体可以全屏,也可以悬浮于其他Activity的窗体之上。 Activity的启动与停止遵循LIFO(栈)原则. 如果打算把Activity独立运行于当前应用程序中,而不允许其他应用程启动它。就应该在AndroidManifest.xml中的<acitivity/>标签中不进行声明任何<intent-filter/>内容. 通过Context.startActivity ...
  ListActivity、TabActivity的结构都大同小异,他们的直接父类都是Activity。 ListActivity管理一个ListView,而TabActivity管理一个TabHost对象。 TabHost,ListView内容发生改变时, Activity.onContentChanged用来刷新各组建的数据. 区别主要在于,如果用户没有自定义布局文件. ListActivity将ListView的实例化操作推迟到 ListActivity.setListAdapter(..)方法中,而 TabActivity则在onPostCreate回调方法中进行初始 ...
    ListActivity用于显示绑定在Array或Cursor对象的数据项,当然你还可以自定义数据源,只需实现ListAdapter接口定义自己的数据源(这是典型的适配器模式); ListActivity通过注册了BaseAdapter.OnItemClickListener来实现当一个数据项点击时通知回调函数onListItemClick(..); 一个ListActivity的实例管理着一个ListView对象,ListView可以显示任何实现了ListAdapter接口的一个数据集,ListAdapter是ListView与源数据之间链接的桥梁(或者说是适配器)。 Li ...
    TabActivity封装了一个TabHost组建的构建、恢复、更新过程。使客户端可以直接使用TabHost的实例,而无须关心TabHost的生命周期管理。 TabActivity.onPostCreate方法检测客户端是否自定义了TabHost。如果未定义该组件,TabActivity将设置默认的TabHost布局文件(com.android.internal.R.layout.tab_content).  一个TabHost[@android:id/tabhost]主要包含了由一系列选项卡(TabSpec)构成的TabWidget[@android:id/tabs]组建和显示 ...
打包的对象类Rect实现android.os.Parcelable接口. 创建Rect.aidl填入如下代码: package cn.lx; parcelable Rect;  声明Service接口,RectService.aidl;必须import对应的打包类。 package cn.lx.aidl; import cn.lx.Rect; interface RectService{ cn.lx.Rect intersection(in cn.lx.Rect left,in cn.lx.Rect right); }  实现RectService ...
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> </head> <body> <object classid="clsid:8E4BEB46-C00F-4719-AD49-E75E839C6889&q ...
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title></title> </head> <body> <object classid="clsid:5A418331-514E-4C54-B526-6AC3C135FFD2&q ...
下载tomcat6:http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.41/bin/apache-tomcat-6.0.41.zip 解压Tomcat到服务器,本例子将tomcat解压在本地 修改%TOMCAT_HOME%/conf/tomcat-users.xml文件如下: <tomcat-users> <role rolename="tomcat"/> <role rolename="manager"/> < ...
在使用新版本的selenium时,当开发人员想获取页面title,应该使用WebDriver自身提供的getTitle()方法获取: String pageTitle=driver.getTitle();  而采用旧版本的获取页面title元素,然后获取该title元素的文本是无法获取的。 String pageTitle=driver.findElement(By.tagName("")).getText();// pageTitle is ""  
cargo-maven2-plugin是被用来在容器上执行功能测试,当然你也可以在测试代码中直接使用cargo java api启动容器。 你可以通过cargo.servolet.port来设置容器的端口号: <configuration> <configuration> <properties> <cargo.servlet.port>8280</cargo.servlet.port> </properties> </config ...
Global site tag (gtag.js) - Google Analytics