diff --git a/README.md b/README.md
index 5c97452a..69fb2f65 100644
--- a/README.md
+++ b/README.md
@@ -61,23 +61,25 @@ The quick start gives a basic example of running client and server on the same m
1. create maven project focus-quickstart and add dependencies to pom.
```xml
-
- com.dinstone.focus
- focus-server-photon
- 1.1.0
- pom
-
-
- com.dinstone.focus
- focus-client-photon
- 1.1.0
- pom
-
-
- com.dinstone.focus
- focus-serialize-json
- 1.1.0
-
+
+
+ com.dinstone.focus
+ focus-server-photon
+ 1.1.0
+ pom
+
+
+ com.dinstone.focus
+ focus-client-photon
+ 1.1.0
+ pom
+
+
+ com.dinstone.focus
+ focus-serialize-json
+ 1.1.0
+
+
```
2. create FooService interface.
diff --git a/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java b/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java
index fd2d4da9..c7d9674d 100644
--- a/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java
+++ b/focus-server/focus-server-nacos/src/main/java/com/dinstone/focus/server/nacos/NacosServiceResolver.java
@@ -25,7 +25,7 @@
public class NacosServiceResolver extends DefaultServiceResolver {
- private NamingService namingService;
+ private final NamingService namingService;
public NacosServiceResolver(NacosResolverOptions options) {
try {
diff --git a/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory b/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory
index 4d961c31..db704a71 100644
--- a/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory
+++ b/focus-server/focus-server-nacos/src/main/resources/META-INF/services/com.dinstone.focus.server.ResolverFactory
@@ -1 +1 @@
-com.dinstone.focus.server.nacos.NacosServiceResolver
\ No newline at end of file
+com.dinstone.focus.server.nacos.NacosResolverFactory
\ No newline at end of file
diff --git a/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java b/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java
index ab9777a8..125be3e1 100644
--- a/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java
+++ b/focus-starter/focus-client-starter/src/main/java/com/dinstone/focus/client/starter/ServiceReferenceRegistrar.java
@@ -65,12 +65,13 @@ public void registerBeanDefinitions(AnnotationMetadata metadata, BeanDefinitionR
AnnotatedBeanDefinition beanDefinition = (AnnotatedBeanDefinition) candidateComponent;
AnnotationMetadata annotationMetadata = beanDefinition.getMetadata();
Assert.isTrue(annotationMetadata.isInterface(),
- "@FocusReference can only be specified on an interface");
+ "@ServiceReference can only be specified on an interface");
Map attributes = annotationMetadata
.getAnnotationAttributes(ServiceReference.class.getCanonicalName());
-
- registerServiceReference(registry, annotationMetadata, attributes);
+ if (attributes != null) {
+ registerServiceReference(registry, annotationMetadata, attributes);
+ }
}
}
@@ -100,10 +101,11 @@ private void registerServiceReference(BeanDefinitionRegistry registry, Annotatio
BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(clazz);
GenericBeanDefinition beanDefinition = (GenericBeanDefinition) builder.getBeanDefinition();
- beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(beanDefinition.getBeanClassName());
- beanDefinition.setInstanceSupplier(() -> {
- return factoryBean.getObject();
- });
+ String beanClassName = beanDefinition.getBeanClassName();
+ if (beanClassName != null) {
+ beanDefinition.getConstructorArgumentValues().addGenericArgumentValue(beanClassName);
+ }
+ beanDefinition.setInstanceSupplier(factoryBean::getObject);
beanDefinition.setFactoryBeanName(factoryBean.getClass().getSimpleName());
beanDefinition.setLazyInit(true);
beanDefinition.setPrimary(true);
@@ -111,12 +113,13 @@ private void registerServiceReference(BeanDefinitionRegistry registry, Annotatio
}
protected Set getBasePackages(AnnotationMetadata metadata) {
- Map attributes = metadata.getAnnotationAttributes(EnableFocusClient.class.getCanonicalName());
-
Set basePackages = new HashSet<>();
- for (String pkg : (String[]) attributes.get("value")) {
- if (StringUtils.hasText(pkg)) {
- basePackages.add(pkg);
+ Map attributes = metadata.getAnnotationAttributes(EnableFocusClient.class.getCanonicalName());
+ if (attributes != null) {
+ for (String pkg : (String[]) attributes.get("value")) {
+ if (StringUtils.hasText(pkg)) {
+ basePackages.add(pkg);
+ }
}
}
if (basePackages.isEmpty()) {