pythonmvc简单框架设计_从零开始实现一个简易的Java MVC框架

前言

最近在看spring-boot框架的源码,看了源码之后更是让我感受到了spring-boot功能的强大。而且使用了很多的设计模式,让人在看的时候觉得有点难以下手。

不过仔细了解了一段时候发现,其实他的原理是很简单的,所以想要自己也动手实现一个功能类似的框架。一方面可以让自己在细节部分了解更深入,另一方面也可以给其他和我一样想要了解spring-boot原理,但是却被他复杂的设计模式吓到的人提供一些参考。

当然自己动手确实很难做到和spring-boot那样强大的功能,而且也为了避免过于使用设计模式而造成代码变得繁杂,我简化了很多过程和功能,使得主要的实现思想更容易得到理解。

本文会一步步讲解这个框架的实现过程,同时也会提及一些spring中经典的代码或者问题。

框架代码已经完成,如果不想看文章的话可以直接看我的项目代码,GitHub:doodle

主要实现功能:

Bean容器

IOC

AOP

MVC

目录

框架成果

我们直接看一下完成之后的效果吧。

package com.sample.controller;

import ...

@Controller

@RequestMapping(value = "/user")

public class UserController {

@Autowired

private UserService userService;

@RequestMapping(value = "/list", method = RequestMethod.GET)

public ModelAndView getUserList() {

List list = userService.getUser();

return new ModelAndView().setView("user_list.jsp").addObject("list", list);

}

@RequestMapping(value = "/detail", method = RequestMethod.GET)

public ModelAndView getUser(@RequestParam(value = "id") long id) {

User user = userService.getUserById(id);

return new ModelAndView().setView("user_detail.jsp").addObject("user", user);

}

@RequestMapping(value = "/add", method = RequestMethod.POST)

@ResponseBody

public Result addUser(@RequestParam(value = "name") String name) {

User user = userService.addUser(name);

return new Result<>(user, 0, "");

}

@RequestMapping(value = "/delete", method = RequestMethod.POST)

@ResponseBody

public Result deleteUser(@RequestParam(value = "id") long id) {

userService.deleteUser(id);

return new Result<>("success", 0, "");

}

}

看UserController这个类不知道的以为这是一个spring-boot项目,但是这个确实没有引用spring,而是自己实现的框架。再通过我们的starter就可以启动内置的tomcat的服务器,访问我们的网站了。这一切都和spring-boot相似

package com.sample;

import ...

public class App {

public static void main(String[] args) {

Doodle.run(App.class);

}

}

接下来几篇就会讲解这个框架是如何实现的。

结语

本项目不仅参考了spring-boot,同时还参考了:

这些都是国人写的更轻量而且也很优秀的框架,相比spring-boot来说阅读源码的难度会小一些。感谢这些框架给我提供学习的思路,同时给我们更多的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值