diff --git a/easyflow-modules/easyflow-module-skill/src/main/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicy.java b/easyflow-modules/easyflow-module-skill/src/main/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicy.java index f4e5b618..321e88ca 100644 --- a/easyflow-modules/easyflow-module-skill/src/main/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicy.java +++ b/easyflow-modules/easyflow-module-skill/src/main/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicy.java @@ -1,5 +1,6 @@ package tech.easyflow.skill.gitimport; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import tech.easyflow.common.web.exceptions.BusinessException; @@ -28,10 +29,17 @@ public class GitRepositoryAccessPolicy { * * @param properties Git 导入配置 */ + @Autowired public GitRepositoryAccessPolicy(SkillGitImportProperties properties) { this(properties, InetAddress::getAllByName); } + /** + * 创建可替换主机解析器的 Git 地址访问策略。 + * + * @param properties Git 导入配置 + * @param hostResolver 主机解析器 + */ GitRepositoryAccessPolicy(SkillGitImportProperties properties, HostResolver hostResolver) { this.properties = properties; this.hostResolver = hostResolver; diff --git a/easyflow-modules/easyflow-module-skill/src/test/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicyTest.java b/easyflow-modules/easyflow-module-skill/src/test/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicyTest.java index 7d1ec262..94142ba3 100644 --- a/easyflow-modules/easyflow-module-skill/src/test/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicyTest.java +++ b/easyflow-modules/easyflow-module-skill/src/test/java/tech/easyflow/skill/gitimport/GitRepositoryAccessPolicyTest.java @@ -2,6 +2,7 @@ package tech.easyflow.skill.gitimport; import org.junit.Before; import org.junit.Test; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; import tech.easyflow.common.web.exceptions.BusinessException; import java.io.IOException; @@ -11,6 +12,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.Set; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertThrows; /** @@ -30,6 +32,20 @@ public class GitRepositoryAccessPolicyTest { policy = new GitRepositoryAccessPolicy(properties); } + /** + * Spring 容器应选择生产构造器完成组件实例化。 + */ + @Test + public void springContextUsesProductionConstructor() { + try (AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext()) { + context.registerBean(SkillGitImportProperties.class, SkillGitImportProperties::new); + context.register(GitRepositoryAccessPolicy.class); + context.refresh(); + + assertNotNull(context.getBean(GitRepositoryAccessPolicy.class)); + } + } + /** * 仓库地址允许省略 .git 后缀并移除结尾斜线。 */