Слияние кода завершено, страница обновится автоматически
假设要改写:
public String process(ParamData param){
String result = null;
if(param.getState()==1){
...
result = xxx;
}else if(param.getState()==2){
...
result = xxx;
}else{
...
result = xxx;
}
return Rresult;
}
详细使用教程请访问Disroute教程
<dependency>
<groupId>cn.langpy</groupId>
<artifactId>disroute</artifactId>
<version>1.0.9</version>
</dependency>
static{
Route.init();
/*Route.init()会进行全类扫描,可以指定项目包进行扫描*/
/*Route.init(“com.xxx”);*/
}
import cn.langpy.disroute.core.Route;
import cn.langpy.disroute.core.RouteCallback;
import cn.langpy.disroute.core.RouteResult;
import java.time.LocalDateTime;
public String process(ParamData param) {
/*入参可以使用自定义的对象参数、Map、JSON等*/
/*返回的对象类型在Process中自行定义 */
return Route.build().context(Process.class).param(param).dispatch();
/*异步模式 使用自定义的线程池(不定义使用默认的) 并开启async*/
//return Route.build().context(Process.class).param(param).executor(new Myexecutor()).async(true).dispatch();
/*回调模式:在程序执行完之后可以进行执行结果回调*/
// return Route.build().context(Process.class).param(param).callback(new RouteCallback<ParamData, String>() {
// @Override
// public void callback(RouteResult<ParamData, String> call) {
// /*入参*/
// ParamData param = call.getParam();
// /*执行结果*/
// String result = call.getResult();
// /*开始时间*/
// LocalDateTime startTime = call.getStartTime();
// /*结束时间*/
// LocalDateTime endTime = call.getEndTime();
// }
// }).dispatch();
}
import cn.langpy.disroute.annotation.Route;
@Route
public class Process{
/*ParamData对象的state==1时跳转执行该方法*/
/*参数类型和Route.dispatch(param)传入的类型保持一致 */
@Route("/state/1")
public String state1(ParamData param){
/*这里写处理逻辑*/
return "我是state==1";
}
/*ParamData对象的state==2时跳转执行该方法*/
@Route("/state/2")
public String state2(ParamData param){
/*这里写处理逻辑*/
return "我是state==2";
}
/*ParamData对象的state==其他数字 时跳转执行该方法 等价于else*/
@Route("/state/*")
public String state2(ParamData param){
/*这里写处理逻辑*/
return "我是else";
}
}
第一步:实现RouteInterface接口
T为入参泛型 R为返回类型泛型
import cn.langpy.disroute.core.RouteInterface;
public interface Process<T, R> extends RouteInterface<T, R> {
}
第二步:定义具体的处理类
@Route("/state/1")
public class State1 implements Process<ParamData,String>{
@Override
public String onRoute(ParamData param) {
/*这里写处理逻辑*/
return "我是state==1";
}
}
@Route("/state/2")
public class State2 implements Process<ParamData,String>{
@Override
public String onRoute(ParamData param) {
/*这里写处理逻辑*/
return "我是state==2";
}
}
@Route("/state/*")
public class StateOther implements Process<ParamData,String>{
@Override
public String onRoute(ParamData param) {
/*这里写处理逻辑*/
return "我是else";
}
}
有些处理方法中需要注入spring的对象,加上@Component注解即可
import cn.langpy.disroute.annotation.Route;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
@Route
public class Process{
@Resource
private UserService userService;
/*ParamData对象的userType==student时跳转执行该方法*/
/*参数类型和Route.dispatch(param)传入的类型保持一致 */
@Route("/userType/student")
public String state1(ParamData param){
/*这里写处理逻辑*/
return "我是userType==student";
}
}
V1.0.0:基本功能
1.本项目使用java8开发,其他版本未曾试验,如有什么bug还请告知!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )