Java SPI 인 스 턴 스
4824 단어 자바
JAVA SPI 인 스 턴 스
참고 하 다
단계
새 인터페이스
인터페이스 구현
my sql 실현oracle 실현
서비스 발견
새 디 렉 터 리 와 파일
서비스 구현 클래스 를 인터페이스 파일 에 기록 합 니 다
테스트
레 퍼 런 스
java 6 spi doc
순서
새 인터페이스
package com.petecc.platform.foodsafe.spi;
/**
* @Description DatabaseInterface
* @author tanw
* @date 2015 7 24 4:01:32
*/
public interface DatabaseInterface {
public void querySth();
}
실현 인터페이스
mysql 실현
package com.petecc.platform.foodsafe.spi;
/**
* @Description MysqlQuery
* @author tanw
* @date 2015 7 24 4:02:15
*/
public class MysqlQuery implements DatabaseInterface {
@Override
public void querySth() {
System.out.println("mysql database query something!");
}
}
Oacle 구현
package com.petecc.platform.foodsafe.spi;
/**
* @Description OracleQuery
* @author tanw
* @date 2015 7 24 4:02:15
*/
public class OracleQuery implements DatabaseInterface {
@Override
public void querySth() {
System.out.println("oracle database query something!");
}
}
서비스 발견
새 디 렉 터 리 와 파일
클래스 경로 에서/META-INF/services/디 렉 터 리 를 만 들 고 디 렉 터 리 에 텍스트 파일 을 넣 습 니 다.파일 이름 은 인터페이스 전체 이름 입 니 다.이 예 는 com.petecc.platform.foodsafe.spi.database 인터페이스 입 니 다.
서비스 구현 클래스 를 인터페이스 파일 에 기록 합 니 다.
com.petecc.platform.foodsafe.spi.database 인터페이스 파일 에서 한 줄 씩 구현 되 며,인터페이스 구현 클래스 의 전체 이름 을 입력 합 니 다.예 를 들 어 이 예 에서 파일 내용 은 다음 과 같 습 니 다.
com.petecc.platform.foodsafe.spi.MysqlQuery
com.petecc.platform.foodsafe.spi.OracleQuery
테스트
package com.petecc.platform.foodsafe.spi;
import java.util.ServiceLoader;
/**
* @Description SPIMain
* @author tanw
* @date 2015 7 24 4:03:19
*/
public class SPIMain {
public static void main(String[] args) {
ServiceLoader loaders = ServiceLoader
.load(DatabaseInterface.class);
int i=0;
for (DatabaseInterface in : loaders) {
in.querySth();
i++;
}
System.out.println();
System.out.println(" :"+i);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.