This website requires JavaScript.

从零开始实现一个简易的 Java MVC 框架(九)--优化 MVC 代码

前言

从零开始实现一个简易的 Java MVC 框架(七)--实现 MVC 中实现了* doodle *框架的 MVC 的功能,不过最后指出代码的逻辑不是很好,在这一章节就将这一部分代码进行优化。

优化的目标是 1. 去除DispatcherServlet请求分发器中的 http 逻辑代码;2. 将ControllerHandlerResultRender中代码按功能细分出来,使其各司其职。

Read more

从零开始实现一个简易的 Java MVC 框架(八)--制作 Starter

spring-boot 的 Starter

一个项目总是要有一个启动的地方,当项目部署在 tomcat 中的时候,经常就会用 tomcat 的startup.sh(startup.bat)的启动脚本来启动 web 项目

而在 spring-boot 的 web 项目中基本会有类似于这样子的启动代码:

@SpringBootApplication
public class SpringBootDemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDemoApplication.class, args);
    }
}
Read more

从零开始实现一个简易的 Java MVC 框架(七)--实现 MVC

前言

标题是‘从零开始实现一个简易的 Java MVC 框架’,结果写了这么多才到实现 MVC 的时候。.. 只能说前戏确实有点多了。不过这些前戏都是必须的,如果只是简简单单实现一个 MVC 的功能那就没有意思了,要有 Bean 容器、IOC、AOP 和 MVC 才像是一个'框架'嘛。

Read more

从零开始实现一个简易的 Java MVC 框架(六)--加强 AOP 功能

前言

在前面 从零开始实现一个简易的 Java MVC 框架(四)--实现 AOP从零开始实现一个简易的 Java MVC 框架(五)--引入 aspectj 实现 AOP 切点 这两节文章中已经实现了 AOP 功能并且引用 aspectj 表达式实现切点的功能,这篇文章继续完善 doodle 框架的 AOP 功能。

在前面的文章中实现的 AOP 功能时,目标类都只能被一个切面代理,如果想要生成第二个代理类,就会把之前的代理类覆盖。这篇文章就要来实现多个代理的功能,也就是实现代理链。

Read more

从零开始实现一个简易的 Java MVC 框架(五)--引入 aspectj 实现 AOP 切点

前言

在上一节 从零开始实现一个简易的 Java MVC 框架(四)--实现 AOP 中我们实现了 AOP 的功能,已经可以生成对应的代理类了,但是对于代理对象的选择只能通过指定的类,这样确实不方便也不合理。这一节我们就利用aspectj来实现功能更强大的切点。

在 spring 初期的时候 AOP 功能使用起来也是很繁琐麻烦的,到了后面整合了aspectj才有了现在这么方便的 AOP 功能,比如下面这样的代码,很简便并且直观的定义了切点。

@Component
@Aspect
public class LogAspect {
	@Pointcut("execution(* com.zbw.*.service..*Impl.*(..)) && @annotation(Log)")
	public void logPointcut() {
	}

	@Before("logPointcut()")
    public void before()
    {System.out.println("Before");}
}

现在我们也来引入 aspectj 来实现 AOP 切点的功能

Read more