代码拉取完成,页面将自动刷新
运用ICO DI AOP RPC概念实现简单的类似于springboot的web框架
@Bootstrap
public class WebBootDemoApplication {
public static void main(String[] args) throws Exception {
MiniApplication.start(WebBootDemoApplication.class, args);
}
}
@Aspect
@Order(-1)
public class TestAspect {
@Inject("print")
private IPrintService iPrintService;
@Point("java.lang.String origin.mini.boot.controller.*.*(..)")
public Object test(IAspectChain iAspectChain) throws Throwable {
iPrintService.print("in method TestAspect ");
Object proceed = iAspectChain.proceed();
iPrintService.print("out method TestAspect ");
return proceed;
}
}
@Config("person")
@Data
public class Person {
private String name;
private int age;
private int sex;
private String[] hand;
private Person sonPerson;
}
@RestHandler
@RequestMapping("/test")
public class TestController {
@Inject
private ITestService iTestService;
@Val("${server.port}")
private String port;
@Val("${server.name}")
private String name;
@Inject
private Person person;
@RequestMapping(value = "/getString")
public String getString(Person person2, JSONObject json, @Param("name") String name) {
return iTestService.testService(port + ":" + person.getName() + ":" + person2.getName() + ":" + json.getString("name") + ":" + name);
}
}
@Container("print")
public class PrintServiceImpl implements IPrintService {
@Override
public void print(String str) {
System.out.println(str + this.getClass().getName());
}
}
@ProviderService
public class UserServiceImpl implements IUserService {
@Override
public String getUserName(int id) {
return "hpc " + id;
}
}
@Bootstrap
@EnableRpcServer(registerAddress = "192.168.0.89:2181")
public class RpcDemoServerApplication {
public static void main(String[] args) throws Exception {
MiniApplication.start(RpcDemoServerApplication.class, args);
System.in.read();
}
}
@Bootstrap
@EnableRpcClient(registerAddress = "192.168.0.89:2181")
public class RpcDemoClientApplication {
public static void main(String[] args) throws Exception {
MiniApplication.start(RpcDemoClientApplication.class, args);
}
}
@RestHandler
@RequestMapping("/user")
public class UserController {
@ConsumerService(version = "1.1")
private IUserService iUserService;
@RequestMapping(value = "/id", method = {RequestMethod.POST})
public JSONObject getUserById(@RequestBody JSONObject obj) {
int userId = obj.getIntValue("userId");
String userName = iUserService.getUserName(userId);
obj.put("userName", userName);
return obj;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。