抄写springboot源码--my-spring项目

博主决定从零开始,模仿SpringBoot源码,构建个人化的SpringBoot框架。本篇详细记录了Maven项目的初始化过程,包括项目结构的搭建、核心类的创建以及基本的启动流程,为后续集成Tomcat和SpringMVC奠定了基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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畅通

课程介绍 仓库管理系统主要功能有采购入库,采购退货,销售出库,销售退货,仓库盘点,库存报表,Excel导入导出,按钮级权限控制及系统日志等功能,系统采用SpringBoot ,mybatis,easyui,ajax,mssql数据库等技术开发。提供所有源代码下载,系统功能完善,可直接运行。开发环境项目开发语言:SpringBoot ,mybatis,easyui,ajax,mssql数据库项目运行环境:jdk1.8及以上版本,tomcat8.0及以上版本,sql server2005及以上版本项目开发工具: 本项目开发工具是Intellij Idea课程目标掌握SpringBoot等技术,熟悉仓库管理系统主要功能,采购入库,采购退货,销售出库,销售退货,仓库盘点,系统报表,权限控制及日志等50多门JAVA系列全套课程,包括大一新生到大四毕业的所有JAVA系列技术专业课程,项目实战,商业项目等;基础课程:JAVA初级工程师: 1、计算机基础 2、HTML语言基础 3、C语言从入门到精通+贪吃蛇游戏 4、贪吃蛇游戏 5、SQL SERVER数据库基础 6、JAVA从入门到精通+推箱子游戏+QQ即时通讯软件 7、推箱子游戏; 8、仿QQ即时通讯软件;JAVA中级工程师: 9、SQLSERVER数据库高级 10、SQLSERVER从入门到精通(基础+高级) 11、JavaScript从入门到精通, 12、JSP从入门到精通+点餐系统, 13、JSP从入门到精通+在线视频学习教育平台, 14、JSP从入门到精通+大型电商平台; 15、XML从入门到精通, 16、数据结构(JAVA版),JAVA高级工程师: 17、Oracle数据库从入门到精通, 18、ajax+jquery从入门到精通, 19、EasyUI从入门到精通,SSH框架: 20、Struts2从入门到精通课程, 21、Hibernate从入门到精通课程, 22、Spring从入门到精通课程; 23、Echarts从入门到精通, 24、Excel基于POI的导入导出工作流框架: 25、Activiti流程框架从入门到精通 26、JBPM流程框架从入门到精通SSM框架: 27、MyBatis从入门到精通 28、Spring MVC从入门到精通 29、Spring Boot入门到精通 30、Spring Cloud入门到精通面试题: 31、职业生涯规划及面试题集锦商业项目: 32、微信公众号在线支付系统 33、微信生活缴费在线支付系统 34、支付宝生活缴费在线支付系统 35、在线考试系统 36、人脸识别智能考试系统(人工智能AI) 37、仓库管理及质量追溯系统 38、房屋出租管理系统APP(身份证识别) 39、手机订餐管理系统, 40、CRM客户关系管理系统 41、大型房地产CRM销售管理系统 42、CMPP2,CMPP3移动网关系统 43、仓库管理系统(SpringBoot) 44、影院在线售票系统(仿猫眼电影)人工智能: 45、人脸识别在线考试系统 46、人脸识别系统项目实战 47、车牌识别停车场管理系统 48、身份证识别系统项目实战 49、营业执照识别系统项目实战 50、名片识别管理系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值