Bladeren bron

feat:模块simple-company使用Service Loader加载服务,然后使用Service Provider提供的对应服务

yang yi 1 maand geleden
bovenliggende
commit
fafe7de0e4
4 gewijzigde bestanden met toevoegingen van 51 en 0 verwijderingen
  1. 1 0
      .gitignore
  2. 1 0
      settings.gradle
  3. 26 0
      simple-company/build.gradle
  4. 23 0
      simple-company/src/main/java/space/anyi/CompanyApplication.java

+ 1 - 0
.gitignore

@@ -54,3 +54,4 @@
 !/simple-api
 !/simple-isp-moblie
 !/simple-isp-unicom
+!/simple-company

+ 1 - 0
settings.gradle

@@ -3,4 +3,5 @@ include 'simple-api'
 include 'simple-isp-moblie'
 include 'untitled'
 include 'simple-isp-unicom'
+include 'simple-company'
 

+ 26 - 0
simple-company/build.gradle

@@ -0,0 +1,26 @@
+plugins {
+    id 'java'
+}
+
+group 'space.anyi'
+version '1.0-SNAPSHOT'
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    //可以全都使用,也可以按需使用
+    //服务提供,使用中国移动的网络服务
+    implementation(project(":simple-isp-moblie"))
+    //服务提供,使用中国联通的网络服务
+    implementation(project(":simple-isp-unicom"))
+    //接口依赖
+    implementation(project(":simple-api"))
+    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
+    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
+}
+
+test {
+    useJUnitPlatform()
+}

+ 23 - 0
simple-company/src/main/java/space/anyi/CompanyApplication.java

@@ -0,0 +1,23 @@
+package space.anyi;
+
+import java.util.ServiceLoader;
+
+/**
+ * @ProjectName: SPI-learn
+ * @FileName: CompanyApplication
+ * @Author: 杨逸
+ * @Data:2025/10/13 11:45
+ * @Description: 公司A连接互联网的应用
+ */
+public class CompanyApplication {
+    public static void main(String[] args) {
+        //通过java.util.ServiceLoader加载服务
+        ServiceLoader<InternetService> services = ServiceLoader.load(InternetService.class);
+        //遍历服务
+        for (InternetService service : services) {
+            //使用服务
+            service.connect();
+        }
+
+    }
+}