从零写一个具有IOC-AOP-MVC功能的框架—学习笔记 专栏往期文章链接:

  1. IOC功能相关章节:
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—01.项目初始化
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—02.IOC核心标签创建
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—03.获取指定包下的类—ClassUtil工具类的编写
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—04.容器的创建以及容器成员的增删查改
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—05. 实现容器的依赖注入
  2. AOP功能相关章节:
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—06. AOP前置工作准备以及实现逻辑分析
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—07. AOP功能实现以及讲解
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—08.框架的AOP功能和IOC功能测试
  3. MVC功能相关章节:
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—09. MVC访问流程简介及部分类的编写
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—10. MVC 结果渲染器的编写
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—11. MVC功能之http请求处理器的编写—简易框架最后一公里!
  4. 学习笔记总结:
    从零写一个具有IOC-AOP-MVC功能的框架—学习笔记—12.Hello Framewok框架初步使用介绍(测试)+未来计划展望

1. 框架功能的使用

1.1 编写controller类

1.1.1 需要完成的controller代码如下:
package test.demo.controller;

import com.wuyiccc.helloframework.core.annotation.Controller;
import com.wuyiccc.helloframework.injection.annotation.Autowired;
import com.wuyiccc.helloframework.mvc.annotation.RequestMapping;
import com.wuyiccc.helloframework.mvc.annotation.RequestParam;
import com.wuyiccc.helloframework.mvc.annotation.ResponseBody;
import com.wuyiccc.helloframework.mvc.type.ModelAndView;
import com.wuyiccc.helloframework.mvc.type.RequestMethod;
import test.demo.pojo.Book;
import test.demo.service.BookService;

import java.util.List;

/** * @author wuyiccc * @date 2020/7/15 22:16 * 岂曰无衣,与子同袍~ */
@Controller
@RequestMapping(value = "/book")
public class BookController {


    @Autowired
    private BookService bookService;

    @RequestMapping(value = "/all", method = RequestMethod.GET)
    @ResponseBody
    public List<Book> getAllBooksInfo() {
       return bookService.getAllBooksInfo();
    }


    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public ModelAndView addBook(
            @RequestParam(value = "bookName") String bookName,
            @RequestParam(value = "author") String author
    ){

        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setView("addSuccess.jsp").addViewData("bookName", bookName).addViewData("author", author);

        return modelAndView;
    }


}

1.2 编写service类

1.2.1 Service需要完成的代码:
package test.demo.service;

import com.wuyiccc.helloframework.core.annotation.Service;
import test.demo.pojo.Book;

import java.util.ArrayList;
import java.util.List;

/** * @author wuyiccc * @date 2020/7/15 22:18 * 岂曰无衣,与子同袍~ */

@Service
public class BookService {


    public List<Book> getAllBooksInfo() {

        List<Book> booksInfo = new ArrayList<>();
        booksInfo.add(new Book("book1", "wuyiccc1"));
        booksInfo.add(new Book("book2", "wuyiccc2"));

        return booksInfo;
    }

}

1.3 编写pojo类

1.4 在配置文件中指明框架的属性配置

  1. 我们在框架里面指明要扫描的配置文件是config/helloframework-config.properties,所以我们框架的相关配置都需要在这个配置文件里面写,框架在启动的时候会自动从这个配置文件里面读取相关的属性值

1.5 放入静态资源

  1. 静态资源必须放在static/目录下,我们在框架源码里面有说明

1.6 编写jsp页面

  1. 同样jsp页面也必须在templates/目录下,我们也在框架源码中有说明

1.7 框架功能测试

1.7.1 先配置tomcat然后运行

1.7.2 访问静态资源

1.7.3 访问jsp页面

1.7.4 测试controller返回json数据

1.7.5 测试controller的数据转发

2. 未来计划展望

  1. 这个从零写一个具有IOC-AOP-MVC功能的框架专栏是我的学习笔记,当然代码不是我原创的啦,不过我在整理笔记的过程中,由于是重新根据代码写的讲解,所以在讲解过程中不免掺杂了我个人的理解,并且在原有的代码基础上做了一部分改进。
  2. 在不远的未来,我会根据我对Spring源码的理解程度,会在这个helloframework框架上再次进行优化,这个优化可能是对目前已有的IOC-AOP-MVC功能再进行增强,也有可能会增加一些与Spring类似的功能
  3. 最后,计划在这个笔记完成之后,我会对helloframework写一份简单的使用文档, 文档内容可能会放在github上,这个具体看情况吧。
  4. 加油!

github地址:https://github.com/wuyiccc/helloframework/

本文地址:https://blog.csdn.net/qq_27148729/article/details/107372675