8000 修改成反射和泛型 · JavaCourse00/JavaCourseCodes@35a12ac · GitHub
[go: up one dir, main page]

Skip to content

Commit 35a12ac

Browse files
committed
修改成反射和泛型
1 parent d4d305d commit 35a12ac

File tree

8 files changed

+62
-13
lines changed

8 files changed

+62
-13
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.kimmking.rpcfx.api;
2+
3+
public interface RpcfxReflectionResolver<T> {
4+
5+
<T> T resolve(String serviceClass);
6+
7+
}

07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/client/Rpcfx.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
import com.alibaba.fastjson.JSON;
55
import com.alibaba.fastjson.parser.ParserConfig;
6-
import io.kimmking.rpcfx.api.RpcfxRequest;
7-
import io.kimmking.rpcfx.api.RpcfxResponse;
6+
import io.kimmking.rpcfx.param.RpcfxRequest;
7+
import io.kimmking.rpcfx.param.RpcfxResponse;
88
import okhttp3.MediaType;
99
import okhttp3.OkHttpClient;
1010
import okhttp3.Request;

07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/api/RpcfxRequest.java renamed to 07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/param/RpcfxRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.kimmking.rpcfx.api;
1+
package io.kimmking.rpcfx.param;
22

33
public class RpcfxRequest {
44

07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/api/RpcfxResponse.java renamed to 07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/param/RpcfxResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.kimmking.rpcfx.api;
1+
package io.kimmking.rpcfx.param;
22

33
public class RpcfxResponse {
44

07rpc/rpc01/rpcfx-core/src/main/java/io/kimmking/rpcfx/server/RpcfxInvoker.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,35 @@
22

33
import com.alibaba.fastjson.JSON;
44
import com.alibaba.fastjson.serializer.SerializerFeature;
5-
import io.kimmking.rpcfx.api.RpcfxRequest;
5+
import io.kimmking.rpcfx.api.RpcfxReflectionResolver;
6+
import io.kimmking.rpcfx.param.RpcfxRequest;
67
import io.kimmking.rpcfx.api.RpcfxResolver;
7-
import io.kimmking.rpcfx.api.RpcfxResponse;
8+
import io.kimmking.rpcfx.param.RpcfxResponse;
89

910
import java.lang.reflect.InvocationTargetException;
1011
import java.lang.reflect.Method;
1112
import java.util.Arrays;
1213

1314
public class RpcfxInvoker {
1415

15-
private RpcfxResolver resolver;
16+
/* private RpcfxResolver resolver;
1617
1718
public RpcfxInvoker(RpcfxResolver resolver){
1819
this.resolver = resolver;
20+
}*/
21+
private RpcfxReflectionResolver reflectionResolver;
22+
23+
public RpcfxInvoker(RpcfxReflectionResolver reflectionResolver) {
24+
this.reflectionResolver = reflectionResolver;
1925
}
2026

2127
public RpcfxResponse invoke(RpcfxRequest request) {
2228
RpcfxResponse response = new RpcfxResponse();
2329
String serviceClass = request.getServiceClass();
2430

2531
// 作业1:改成泛型和反射
26-
Object service = resolver.resolve(serviceClass);//this.applicationContext.getBean(serviceClass);
32+
//Object service = resolver.resolve(serviceClass);//this.applicationContext.getBean(serviceClass);
33+
Object service = reflectionResolver.resolve(serviceClass);
2734

2835
try {
2936
Method method = resolveMethodFromClass(service.getClass(), request.getMethod());

07rpc/rpc01/rpcfx-demo-provider/src/main/java/io/kimmking/rpcfx/demo/provider/OrderServiceImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import io.kimmking.rpcfx.demo.api.Order;
44
import io.kimmking.rpcfx.demo.api.OrderService;
55

6+
67
public class OrderServiceImpl implements OrderService {
78

89
@Override
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package io.kimmking.rpcfx.demo.provider;
2+
3+
import io.kimmking.rpcfx.api.RpcfxReflectionResolver;
4+
5+
import java.lang.reflect.InvocationTargetException;
6+
7+
public class ReflectionResolver<T> implements RpcfxReflectionResolver<T> {
8+
@Override
9+
public T resolve(String serviceClass) {
10+
T t = null;
11+
try {
12+
Class<?> klass = Class.forName(serviceClass);
13+
t = (T) klass.getConstructor().newInstance();
14+
} catch (ClassNotFoundException e) {
15+
e.printStackTrace();
16+
} catch (IllegalAccessException e) {
17+
e.printStackTrace();
18+
} catch (InstantiationException e) {
19+
e.printStackTrace();
20+
} catch (NoSuchMethodException e) {
21+
e.printStackTrace();
22+
} catch (InvocationTargetException e) {
23+
e.printStackTrace();
24+
}
25+
26+
return t;
27+
}
28+
}

07rpc/rpc01/rpcfx-demo-provider/src/main/java/io/kimmking/rpcfx/demo/provider/RpcfxServerApplication.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package io.kimmking.rpcfx.demo.provider;
22

3-
import io.kimmking.rpcfx.api.RpcfxRequest;
3+
import io.kimmking.rpcfx.api.RpcfxReflectionResolver;
4+
import io.kimmking.rpcfx.param.RpcfxRequest;
45
import io.kimmking.rpcfx.api.RpcfxResolver;
5-
import io.kimmking.rpcfx.api.RpcfxResponse;
6+
import io.kimmking.rpcfx.param.RpcfxResponse;
67
import io.kimmking.rpcfx.demo.api.OrderService;
78
import io.kimmking.rpcfx.demo.api.UserService;
89
import io.kimmking.rpcfx.server.RpcfxInvoker;
@@ -31,15 +32,20 @@ public RpcfxResponse invoke(@RequestBody RpcfxRequest request) {
3132
}
3233

3334
@Bean
34-
public RpcfxInvoker createInvoker(@Autowired RpcfxResolver resolver){
35+
public RpcfxInvoker createInvoker(@Autowired RpcfxReflectionResolver resolver){
3536
return new RpcfxInvoker(resolver);
3637
}
3738

3839
@Bean
39-
public RpcfxResolver createResolver(){
40-
return new DemoResolver();
40+
public RpcfxReflectionResolver createReflectionResolver() {
41+
return new ReflectionResolver();
4142
}
4243

44+
// @Bean
45+
// public RpcfxResolver createResolver(){
46+
// return new DemoResolver();
47+
// }
48+
4349
// 能否去掉name
4450
//
4551
@Bean(name = "io.kimmking.rpcfx.demo.api.UserService")

0 commit comments

Comments
 (0)
0