Skip to content

Commit 9250e46

Browse files
@initial 7.0.0-preview.625 Remove some useless cls & add anno getter for apps
1 parent 73833b9 commit 9250e46

5 files changed

Lines changed: 122 additions & 131 deletions

File tree

src/main/java/com/talexframe/frame/core/modules/application/TAppManager.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@
1212
import lombok.Getter;
1313
import lombok.SneakyThrows;
1414

15+
import java.lang.annotation.Annotation;
1516
import java.lang.reflect.Field;
17+
import java.lang.reflect.Method;
18+
import java.lang.reflect.ParameterizedType;
19+
import java.util.ArrayList;
20+
import java.util.List;
1621
import java.util.concurrent.ConcurrentHashMap;
1722
import java.util.concurrent.ConcurrentMap;
1823

@@ -138,4 +143,39 @@ public boolean unRegisterController(WebPlugin plugin, TApp controller) {
138143

139144
}
140145

146+
public static class TAppAnnoGetter<T extends Annotation> {
147+
148+
@SuppressWarnings( "unchecked" )
149+
private Class<T> templateClass = (Class<T>) ( (ParameterizedType) this.getClass().getGenericSuperclass() ).getActualTypeArguments()[0];
150+
151+
public TAppAnnoGetter() {
152+
153+
154+
155+
}
156+
157+
public List<T> getAnnos(TApp controller) {
158+
159+
List<T> list = new ArrayList<>();
160+
161+
manager.controllers.keySet().forEach((cls) -> {
162+
163+
for( Method method : cls.getMethods() ) {
164+
165+
if( method.isAnnotationPresent(templateClass) ) {
166+
167+
list.add(method.getAnnotation(templateClass));
168+
169+
}
170+
171+
}
172+
173+
});
174+
175+
return list;
176+
177+
}
178+
179+
}
180+
141181
}

src/main/java/com/talexframe/frame/core/modules/network/connection/RequestAnalyser.java

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -107,46 +107,44 @@ private void process() {
107107

108108
if( !could.get() ) return;
109109

110-
if( wr.getResponse().isCommitted() ) return;
110+
Collection<ReceiverAddon> receiverAddons = ReceiverAddonAdapter.getReceiverAddons(ReceiverAddon.ReceiverAddonType.METHOD_APP);
111111

112-
Collection<ReceiverAddon> receiverAddons = ReceiverAddonAdapter.getReceiverAddons(ReceiverAddon.ReceiverAddonType.METHOD_APP);
112+
receiverAddons.forEach((addon) -> {
113113

114-
receiverAddons.forEach((addon) -> {
115-
116-
if( !could.get() ) return;
114+
if( !could.get() ) return;
117115

118-
log.debug("[解析层] # -- METHOD -- 开始执行接收器: " + addon.getClass().getName());
116+
// log.debug("[解析层] # -- METHOD -- 开始执行接收器: " + addon.getClass().getName());
119117

120-
could.set(addon.onPreInvokeMethod(subReqReceiver, wr));
118+
could.set(addon.onPreInvokeMethod(subReqReceiver, wr));
121119

122-
log.debug("[解析层] # -- METHOD -- 接收器执行结果: " + could.get());
120+
// log.debug("[解析层] # -- METHOD -- 接收器执行结果: " + could.get());
123121

124-
});
122+
});
125123

126-
log.debug("[解析层] # -- METHOD -- 总体执行结果: " + could.get());
124+
log.debug("[解析层] # -- METHOD -- 总体执行结果: " + could.get());
127125

128-
if( !could.get() ) return;
126+
if( !could.get() ) return;
129127

130-
log.debug("[解析层] # -- METHOD -- >>> 进入 (onRequest) | {}", could.get());
128+
log.debug("[解析层] # -- METHOD -- >>> 进入 (onRequest) | {}", could.get());
131129

132-
Object obj = subReqReceiver.onRequest(reqReceiver, subReqReceiver, wr, time);
130+
Object obj = subReqReceiver.onRequest(reqReceiver, subReqReceiver, wr, time);
133131

134-
log.debug("[解析层] # -- onRequest -- 执行结果: " + JSONUtil.toJsonStr(obj));
132+
log.debug("[解析层] # -- onRequest -- 执行结果: " + JSONUtil.toJsonStr(obj));
135133

136-
final Object finalObj = obj;
137-
receiverAddons.forEach((addon) -> addon.onPostInvokeMethod(subReqReceiver, wr, finalObj));
134+
final Object finalObj = obj;
135+
receiverAddons.forEach((addon) -> addon.onPostInvokeMethod(subReqReceiver, wr, finalObj));
138136

139-
log.debug("[解析层] # -- METHOD -- 执行结果完毕!");
137+
log.debug("[解析层] # -- METHOD -- 执行结果完毕!");
140138

141-
if ( obj != null ) {
139+
if ( obj != null ) {
142140

143-
String tStr = JSONUtil.toJsonStr(obj);
141+
String tStr = JSONUtil.toJsonStr(obj);
144142

145-
wr.returnData(tStr);
143+
wr.returnData(tStr);
146144

147-
log.info("[应用层] ## OK Return: " + tStr + " ##");
145+
log.info("[应用层] ## OK Return: " + tStr + " ##");
148146

149-
}
147+
}
150148

151149
clsReceiverAddons.forEach((addon) -> addon.onPostCheckAppReceiver(reqReceiver, wr));
152150

Lines changed: 62 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,62 @@
1-
package com.talexframe.frame.core.modules.network.interceptor;
2-
3-
import com.fasterxml.jackson.databind.ObjectMapper;
4-
import com.talexframe.frame.core.pojo.annotations.WrapperResponse;
5-
import com.talexframe.frame.core.pojo.wrapper.ResultData;
6-
import lombok.SneakyThrows;
7-
import org.springframework.core.MethodParameter;
8-
import org.springframework.http.MediaType;
9-
import org.springframework.http.converter.HttpMessageConverter;
10-
import org.springframework.http.server.ServerHttpRequest;
11-
import org.springframework.http.server.ServerHttpResponse;
12-
import org.springframework.web.bind.annotation.RestControllerAdvice;
13-
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
14-
15-
import java.util.Objects;
16-
17-
/**
18-
* <br /> {@link com.talexframe.frame.interceptor Package }
19-
*
20-
* @author TalexDreamSoul
21-
* @date 2022/1/16 10:33 <br /> Project: TalexFrame <br />
22-
*/
23-
@RestControllerAdvice
24-
public class ResponseAdviceInterceptor implements ResponseBodyAdvice<Object> {
25-
26-
private final ObjectMapper objectMapper;
27-
28-
public ResponseAdviceInterceptor(ObjectMapper objectMapper) {this.objectMapper = objectMapper;}
29-
30-
@Override
31-
public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
32-
33-
WrapperResponse wr = converterType.getAnnotation(WrapperResponse.class);
34-
35-
if ( wr != null && !wr.value() ) {
36-
return false;
37-
}
38-
39-
wr = Objects.requireNonNull(returnType.getMethod()).getAnnotation(WrapperResponse.class);
40-
41-
return wr == null || wr.value();
42-
43-
}
44-
45-
@SneakyThrows
46-
@Override
47-
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
48-
49-
if ( body instanceof ResultData ) {
50-
return body;
51-
}
52-
53-
if ( body instanceof String ) {
54-
55-
return objectMapper.writeValueAsString(ResultData.SUCCESS(body));
56-
57-
}
58-
59-
return ResultData.SUCCESS(body);
60-
61-
}
62-
63-
}
1+
// package com.talexframe.frame.core.modules.network.interceptor;
2+
//
3+
// import com.fasterxml.jackson.databind.ObjectMapper;
4+
// import com.talexframe.frame.core.pojo.wrapper.ResultData;
5+
// import lombok.SneakyThrows;
6+
// import org.springframework.core.MethodParameter;
7+
// import org.springframework.http.MediaType;
8+
// import org.springframework.http.converter.HttpMessageConverter;
9+
// import org.springframework.http.server.ServerHttpRequest;
10+
// import org.springframework.http.server.ServerHttpResponse;
11+
// import org.springframework.web.bind.annotation.RestControllerAdvice;
12+
// import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
13+
//
14+
// import java.util.Objects;
15+
//
16+
// /**
17+
// * <br /> {@link com.talexframe.frame.interceptor Package }
18+
// *
19+
// * @author TalexDreamSoul
20+
// * @date 2022/1/16 10:33 <br /> Project: TalexFrame <br />
21+
// */
22+
// @RestControllerAdvice
23+
// public class ResponseAdviceInterceptor implements ResponseBodyAdvice<Object> {
24+
//
25+
// private final ObjectMapper objectMapper;
26+
//
27+
// public ResponseAdviceInterceptor(ObjectMapper objectMapper) {this.objectMapper = objectMapper;}
28+
//
29+
// @Override
30+
// public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
31+
//
32+
// WrapperResponse wr = converterType.getAnnotation(WrapperResponse.class);
33+
//
34+
// if ( wr != null && !wr.value() ) {
35+
// return false;
36+
// }
37+
//
38+
// wr = Objects.requireNonNull(returnType.getMethod()).getAnnotation(WrapperResponse.class);
39+
//
40+
// return wr == null || wr.value();
41+
//
42+
// }
43+
//
44+
// @SneakyThrows
45+
// @Override
46+
// public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
47+
//
48+
// if ( body instanceof ResultData ) {
49+
// return body;
50+
// }
51+
//
52+
// if ( body instanceof String ) {
53+
//
54+
// return objectMapper.writeValueAsString(ResultData.SUCCESS(body));
55+
//
56+
// }
57+
//
58+
// return ResultData.SUCCESS(body);
59+
//
60+
// }
61+
//
62+
// }

src/main/java/com/talexframe/frame/core/pojo/annotations/TRestFul.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/main/java/com/talexframe/frame/core/pojo/annotations/WrapperResponse.java

Lines changed: 0 additions & 23 deletions
This file was deleted.

0 commit comments

Comments
 (0)