Skip to content

Commit ed9787e

Browse files
author
[moon]
committed
修正EnhancerCGLib代理导致类型字段无法正常注入的问题
1 parent 7b0b271 commit ed9787e

File tree

4 files changed

+21
-7
lines changed

4 files changed

+21
-7
lines changed

README-CN.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<dependency>
1515
<groupId>plus.jdk.grpc</groupId>
1616
<artifactId>spring-boot-starter-grpc</artifactId>
17-
<version>1.1.02</version>
17+
<version>1.1.04</version>
1818
</dependency>
1919
```
2020

@@ -250,6 +250,8 @@ public class GrpcClientInterceptorGlobalConfigurer implements GrpcClientIntercep
250250

251251
#### 编写代码执行远程调用:
252252

253+
你可以使用 `@GrpcClient` 注解来申明一个Grpc 调用的 client, 示例如下:
254+
253255
```java
254256
import io.grpc.ManagedChannelBuilder;
255257
import org.springframework.stereotype.Component;

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
<dependency>
1414
<groupId>plus.jdk.grpc</groupId>
1515
<artifactId>spring-boot-starter-grpc</artifactId>
16-
<version>1.1.02</version>
16+
<version>1.1.04</version>
1717
</dependency>
1818
```
1919

pom.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>plus.jdk.grpc</groupId>
88
<artifactId>spring-boot-starter-grpc</artifactId>
9-
<version>1.1.02</version>
9+
<version>1.1.04</version>
1010

1111
<name>spring-boot-starter-grpc</name>
1212
<description>spring-boot-starter-grpc</description>

src/main/java/plus/jdk/grpc/client/GrpcClientBeanPostProcessor.java

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package plus.jdk.grpc.client;
22

33
import com.google.common.collect.Lists;
4-
import io.grpc.Channel;
54
import io.grpc.ClientInterceptor;
65
import io.grpc.stub.AbstractStub;
6+
import org.springframework.aop.framework.Advised;
77
import org.springframework.beans.BeanInstantiationException;
88
import org.springframework.beans.BeansException;
99
import org.springframework.beans.factory.BeanCreationException;
@@ -18,7 +18,6 @@
1818
import plus.jdk.grpc.config.GrpcPlusClientProperties;
1919

2020
import java.lang.reflect.Field;
21-
import java.lang.reflect.Member;
2221
import java.lang.reflect.Method;
2322
import java.net.URI;
2423
import java.util.List;
@@ -41,8 +40,21 @@ public GrpcClientBeanPostProcessor(ApplicationContext context,
4140

4241
@Override
4342
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
44-
processFields(bean.getClass(), bean);
45-
processMethods(bean.getClass(), bean);
43+
Class<?> clazz = bean.getClass();
44+
if(bean instanceof Advised) {
45+
clazz = bean.getClass().getSuperclass();
46+
Advised advised = (Advised) bean;
47+
try {
48+
Object rawBean = advised.getTargetSource().getTarget();
49+
Class<?> rawClazz = bean.getClass().getSuperclass();
50+
processFields(rawClazz, rawBean);
51+
processMethods(rawClazz, rawBean);
52+
} catch (Exception e) {
53+
throw new RuntimeException(e);
54+
}
55+
}
56+
processFields(clazz, bean);
57+
processMethods(clazz, bean);
4658
return bean;
4759
}
4860

0 commit comments

Comments
 (0)