手把手教你学习GitHub开源项目

1,230 阅读4分钟

1、利用GitHub,学会从1-0-1

你可以不会写程序,但不可以没听说过github,有人可能会说,是那个github吗?对..对..对,就是那个github(张伟脸),github作为全世界最大同性交友网站,简直就是程序猿的福地,在这里我们可以从一个完整项目开始,一点一点的,亲自见证从0到1的过程,提升自己的硬实力。相对于某培训机构,利用好github的好处可不止一点半点(主要是省钱)。

如果你想要看懂下边的内容,你需要做以下准备:

  • 一个github账号
  • 一双眼睛
  • 一个脑子,半个也行

2、从GitHub下载我们需要的资源

这里主要通过newbee-mall项目来做讲解。 声明:本人跟该项目作者一毛钱关系也没有。

在github页面搜索newbee-mall项目

点进去,会有一个README.md文件,这是项目的详细介绍,通过安装包方式下载开源项目

3、解压newbee-mall.zip,用idea打开

解压newbee-mall.zip,用idea打开,配置maven拉取pom依赖

4、配置mysql数据库,修改application.properties配置文件

创建数据库 newbee_mall_db

找到sql文件,批量导入sql

sql导入的结果:

配置application.properties

5、启动项目,访问项目地址

启动项目

访问项目地址 http://localhost:28089/

可以看出项目已经运行起来了,这时有人就不知道该怎么继续下去了,不要急,我们登录后台管理系统看一下。

这里发现需要账号、密码、和验证码,我们找到tb_newbee_mall_admin_user表,发现有一个admin账号,密码是加密之后的,看密码的加密格式应该是md5加密,我们盲猜一下密码123456,输入验证码,成功进入后台系统。

这里有一个小插曲,有几次输入验证码一直输不对,导致登录验证一直过不去,我这暴脾气,直接把验证码校验给禁用了。我们通过访问url能够看到请求的接口地址,直接到idea中双击Shift全局搜索/admin/login,我们会发现验证码校验果然在这里,直接注释掉。

6、通过文件上传功能来举一反三

进入到管理界面,发现有添加商品信息的功能,添加一个测试一下。

添加之后:

感觉还不错,这时我们可以针对于页面的某一个功能来阅读其代码,就拿这个文件上传功能来说,之前的配置文件只有数据库的配置,结合数据库中tb_newbee_mall_goods_info表,我们可以确定该文件上传功能是上传到本地,然后将文件路径存入数据库中。

通过浏览器发送的请求我们可以找到文件上传的接口,到idea中去查看该接口的页面逻辑。

可以看到,/admin/upload/file接口需要一个文件参数,然后根据Constants.FILE_UPLOAD_DIC获取文件存放的路径,不存在就创建文件夹,将图片塞进去。

我们通过postman来测试一下这个接口。

发现不仅没有返回信息,反而返回一堆html代码,我们去看这些代码,是被WebMVC拦截器给拦截了,我们去看一下拦截代码

果不其然,没登录直接把admin开头的都拦截,直接给他改掉,加上 .excludePathPatterns("/admin/")放开所有拦截。再测试一下。

可以看到,文件上传成功,但我们仔细观察文件路径,发现跟本地存储路径的不一样,它又是如何访问的本地图片的呐?还是看拦截器代码:

   public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/upload/**").addResourceLocations("file:" + Constants.FILE_UPLOAD_DIC);
        registry.addResourceHandler("/goods-img/**").addResourceLocations("file:" + Constants.FILE_UPLOAD_DIC);
    }

来看这个方法,会发现拦截器将所有/upload开头的请求都拦截,并且将它们定向到新的路径上去,实现本地图片的访问。

以上就是本文全部内容。按照上边的流程,小伙伴们完全可以将一个开源项目一步一步吃透,提高自己的技术能力。如果您感觉还不错,请一键三连,是对作者最大的支持。