基于SpringBoot+MySQL的科研学术论文资讯推送系统

发布于:2022-11-01 ⋅ 阅读:(678) ⋅ 点赞:(0)

目录
科研资讯推送系统 1
技术选型 1
部署 2
爬虫 2
功能 2
查看论文 2
设置领域 3
查看学术活动 6
关注实体查看 8
关注实体设置 10
管理员功能 10
使用 11
开发 11

  1. 引言 11
  2. 需求分析 13
    时间特性要求 25
    application/x-www-form-urlencoded 26
    multipart/form-data 26
    application/json 27
  3. 系统分析 29
    Static 32
    Js 32
  4. UML 设计 37
    外存设备及外存空间的组织 58
    访问数据的方式方法 58
    查 71
    多对多映射实现 71
    增 72
    删 72
    改 73
  5. 系统测试 76
  6. 课设中遇到的问题及解决 91
  7. 课程设计总结 94
  8. 参考文献 95
    部署 96
  9. 系统分析
    3.1.新系统的子系统划分
    本项目使用 Spring 进行开发,故先介绍 Spring 的子系统划分。在 Spring 的子系统划分的基础上,介绍新系统功能的子系统划分。
    3.1.1.Spring 的子系统划分
    Spring 的核心是一个容器,通常称为 Spring 应用程序上下文,用于创建和管理应用程序组件。这些组件(bean)在 Spring 应用程序上下文中连接在一起以构成一个完整的应用程序,就像将砖、灰浆、木材、钉子、管道和电线绑在一起以组成房屋。
    将 bean 连接在一起的行为是基于一种称为依赖注入(DI)的模式。依赖项注入的应用程序不是由组件自身创建和维护它们依赖的其他 bean 的生命周期,而是依赖于单独的实体(容器)来创建和维护所有组件,并将这些组件注入需要它们的 bean。通常通过构造函数参数或属性访问器方法完成此操作。
    例如,假设在应用程序的许多组件中,要处理两个组件:
    inventoryservice(用于获取库存级别)和 productservice(用于提供基本产品信息)。productservice 取决于 inventoryservice,以便能够提供有关产品的完整信息。
    在这里插入图片描述

我认为,依赖注入是一个非常天才和伟大的发明创造,大大减少了开发过程中繁琐的主动注入过程,减少了耦合和依赖。
3.1.2.SpringFramework
也就是我们经常说的 Spring 框架,包括了 IoC 依赖注入,Context 上下文、bean 管理、SpringMVC 等众多功能模块,其它 Spring 项目比如 SpringBoot 也会依赖 Spring 框架。
3.1.3.SpringBoot
SpringBoot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。SpringBoot 其实不是什么新的框架,它默认配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,SpringBoot 整合了所有的框架(不知道这样比喻是否合适)。
3.1.4.SpringData
是一个数据访问及操作的工具集,封装了多种数据源的操作能力,包括:JDBC、Redis、MongoDB 等。使用 SpringData,能简化对数据库的访问,加强项目的维护能力。
3.1.5.SpringSecurity
SpringSecurity 主要用于快速构建安全的应用程序和服务,在 SpringBoot 和 SpringSecurityOAuth2 的基础上,可以快速实现常见安全模型,如单点登录,令牌中继和令牌交换。比较常见的是 oauth2 授权机制和 jwt 认证方式。oauth2 是一种授权机制,规定了完备的授权、认证流程。JWT 全称是 JSONWebToken,是一种把认证信息包含在 token 中的认证实现,oauth2 授权机制中就可以应用 jwt 来作为认证的具体实现方法。

@Controller@RequestMapping("/paper/paper")public class PaperController extends BaseController {
    @Autowired
    private PaperService paperService;
    @Autowired
    private UserService userService;

    @RequestMapping(value = "/list")
    @ResponseBody
    public Object list(@RequestParam(required = false)
    String title) {
        Page<Paper> page = new PageFactory<Paper>().defaultPage();
        Long userId = ShiroKit.getUser().getId();
        List<Paper> rsl = paperService.findByUserId(userId);
        page.setRecords(rsl);
        page.setTotal(Integer.valueOf(rsl.size() + ""));

        return packForBT(page);
    }}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到