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


    目录
    科研资讯推送系统 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);
        }}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

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

  • 相关阅读:
    关于数据库死锁的分析以及解决办法
    80篇国产数据库实操文档汇总(含TiDB、达梦、openGauss等)
    发布 jar 包到 maven 中央仓库
    让你全方位了解tftp协议,学tftp协议不再难
    Linux 命令:PS(进程状态)
    个人散户如何参与程序化交易?
    圆角矩形 渐变边框 css
    MarkDown使用技巧
    CommomJS使用介绍_web前端培训
    “全数前进”媒体交流会在京举办
  • 原文地址:https://blog.csdn.net/newlw/article/details/127638131