Defining interfaces
Package Com.hiwzc.myspi;public interface Demo {void dosomething ();}
Two simulation implementations available
Package Com.hiwzc.myspi.impl;import Com.hiwzc.myspi.demo;public class Demoaimpl implements demo{@Override public vo ID dosomething () {System.out.println ("A"); }}
Package Com.hiwzc.myspi.impl;import Com.hiwzc.myspi.demo;public class Demobimpl implements Demo {@Override public v OID dosomething () {System.out.println ("B"); }}
Meta-inf/services/com.hiwzc.myspi.demo file that provides an implementation:
Com.hiwzc.myspi.impl.DemoAImpl
Code calls
Package Com.hiwzc.myspi;import Java.util.serviceloader;public class Main {public static void main (string[] args) { serviceloader<demo> loader = serviceloader.load (Demo.class); for (Demo Demo:loader) {demo.dosomething (); } }}
This article is from the "self-reliance, tenet" blog, please be sure to keep this source http://wangzhichao.blog.51cto.com/2643325/1851587
Sample code for the SPI mechanism of Java