1. 抄写springboot源码 -- my-spring 项目
在项目中,集成spring体系后,发现一切都变得超简单. 所以我有个大胆的想法,抄袭springboot源码,写一个我自己的springboot框架,说着,我就动手开始了...
2. 目录:
- 搭建项目架子,保证项目能正常启动
- 集成tomcat服务,运行mvc
- 实现controller控制器的调度
- 注解实现bean的管理
3. 本文为第一篇笔记,搭建项目
- 准备maven项目,这里我已my-spring作为项目名,pom.xml配置如下,
-
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mp</groupId> <artifactId>my-spring</artifactId> <version>1.0-SNAPSHOT</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> </plugins> </build> </dependencies> </project>
这里,没有引入任何的跟spring相关的的依赖包,我们都要手动来实现...
-
项目结构
-
两大模块,一个为framework(核心),另一个demo(验证测试)
-
在framework包下新建MyApplication启动类
-
package com.mp.framework.starter;
/**
* ClassName: MyApplication
* Function: TODO
* Date: 2020-05-07 09:44
* author mp
* version V1.0
*/
public class MyApplication {
public static void run(Class<?> cls,String[] args) throws LifecycleException, IOException, ClassNotFoundException {
System.out.println("hello my0-spring application!!!");
}
}
在demo包下新建LaunchApp调用启动类,启动服务
package com.mp.demo;
import com.mp.framework.starter.MyApplication;
import org.apache.catalina.LifecycleException;
import java.io.IOException;
/**
* ClassName: LaunchApp
* Function: TODO
* Date: 2020-05-07 09:43
* author mp
* version V1.0
*/
public class LaunchApp {
public static void main(String[] args) throws LifecycleException, IOException, ClassNotFoundException {
System.out.println("hello spring");
MyApplication.run(LaunchApp.class,args);
}
}
- 启动服务,项目正常调用启动类
-
hello spring hello my0-spring application!!!
至此项目大流程布局完成,下一节笔记介绍集成Tomcat,并调用spring mvc畅通