Application:启动的入口函数
common:一般就是存放公共的类或者常量,或者枚举值
config:装载或者是数据库的配置,我们都会放在config下面, webAPPconfig是对我们的静态资源,比如说css、js还有一些图片,做了一个映射,比如说static,然后我们把它映射到classpath:/static目录下。
Controller:我们接收外部的请求,比如参数校验,之后通过接口调用或得到的数据返回给前端
Service:把不同的请求,不同的服务把它抽象成一个service,本项目有两个service,也可以认为是两个模块。
Utils:存放公共的类或者工具函数。可以获取图片、获取分类,通过分类以及标签获取图片,通过分类获取图片列表以及上传文件。
在上传文件函数需要完成一个上传,把上传的文件保存到文件当中,需要调用两个识别的函数,表情识别,场景识别。
另外需要注意一下,通过multipartFile获取的是一个文件的输入流,输入流的话它只能读取一次,然后如果要重复读的话就会是空。 所以我们把它转化成一个ByteArrayInputStream流,然后我们在每次用完之后,我们可以把它进行一个reset(),之后可以把流保存在我们的内存当中,一般不推荐使用这种方式,因为如果图片的比较大的话,可能会占用太多的内存空间。此外由于我们上传的图片可能会有重名,为了避免重名,我们对这个图片的input的流,我们给它求一个md5值作为文件名。ResourceService是一个资源的管理器,先来看两个函数,Postconstruct注解,我们会先去执行这个函数,取出保存在本地的数组并且加载到内存中去。 PreDestroy注解,在销毁对象的时候,把这些数据保存到本地文件,也就是说保存在这个data上面,有一个 data.json数据,来看一下整个的数据存储的结构。
vue-gallery,实现自定义的标签名,之后定义了一个属性:photos。photos从后台去取回数据,之后把它渲染到前端的html页面当中。由于我们这是一个组件,它会有对应的自己一个模板,这个就是我们整个的模板部分,之后对它进行背景图片的处理,然后以及一些事件的定义。
vue,它的整个是一个事件的数据流,通过数据的不同的变化,然后我们就可以去触发它的渲染,比如上传一张图片,它是可以对应不同的组件进行交互,利用不同的标签,事件来驱动数据的变化。