毕业设计 - 基于SSH的任务调度系统的设计与实现 【源码+论文】

news2024/11/24 20:33:04

文章目录

  • 前言
  • 一、项目设计
    • 1. 模块设计
    • 2. 实现效果
  • 二、部分源码
  • 项目源码


前言

今天学长向大家分享一个 Java web 毕业设计项目:

基于SSH的任务调度系统的设计与实现


一、项目设计

1. 模块设计

根据需求调研结果确定本任务调度系统的功能结构,最终系统实现的系统将分为组长和组员两个角色,其中两个角色共有功能包括修改登录密码、项目搜索、项目查看、项目管理、消息管理。组长部分的功能有任务管理、项目组成员管理,组员部分的功能有申请调动功能。
在这里插入图片描述

下面我们要发展的系统设计和基于信息系统的原则,系统模型系统的原则。我们对项目进行应用分层

在这里插入图片描述
1、开放接口层:直接封装Service接口,可以选择暴露成RPC接口;或者通过Web协议封装为http接口;网关控制层等,本项目中不提供此开放层。
2、终端显示层:各类客户端的模板渲染并执行的显示层。目前生产生活中主要是JSP渲染,JS渲染,velocity渲染,移动端展示层等,在本项目中主要变现为JS渲染。
3、Web层:对访问控制进行转发,业务逻辑前的预处理工作,如各类基本参数校验,或者简单业务处理等。
4、Service层:具体的业务逻辑服务层。
5、Manager层:通用业务处理层,包含特征:
1) 封装第三方平台,转化异常信息以及预处理业务和返回结果等;
2)下沉Service层通用能力,比如缓存方案、中间件通用处理;
3) 与DAO层交互,封装DAO的业务通用能力。缓存方案、中间件通用处理;
6、DAO层:数据访问层,与底层各类数据库或缓存方案进行数据交互。
7、外部接口或第三方平台:包括其他公司基础平台,或者RPC接口,也包括其它的HTTP接口,本项目中不依赖该层服务。

2. 实现效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

功能较多,学长这里就不一 一展示了

二、部分源码

源码较多,文章篇幅有限,这里就不放上来了,仅展示小部分关键代码

部分代码示例:

applicationContext-common.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans >
	<!-- 启用spring注解支持 -->
	<context:annotation-config />
	<!-- 启动Spring自动扫描功能 -->
    <context:component-scan base-package="com.fcq.schedule.job" />
	<!--配数据源 -->
	<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUrl"
			value="jdbc:mysql://localhost:3306/generation_design?characterEncoding=utf8&amp;useSSL=true" />
		<property name="user" value="root" />
		<property name="password" value="123456" />
		<property name="maxPoolSize" value="80" />
		<property name="minPoolSize" value="1" />
		<property name="initialPoolSize" value="1" />
		<property name="maxIdleTime" value="20" />
	</bean>
	<!--定义HibernateSessionFactory -->
	<!-- SessionFactory使用的数据源为上面的数据源 -->
	<!-- 指定了Hibernate的映射文件和配置信息 -->
	<bean id="sessionFactory"
		class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
				<prop key="show_sql">true</prop>
				<prop key="hibernate.jdbc.batch_size">20</prop>
				<!-- 自动创建数据表 -->
				<prop key="hibernate.hbm2ddl.auto">update</prop>
			</props>
		</property>
		<!-- 使用配置文件 -->
		<property name="mappingLocations">
			<list>
				<value>classpath:com/fcq/schedule/job/po/*.hbm.xml</value>
			</list>
		</property>
		<!-- Spring自动加载annotatedClass -->
		<!-- <property name="annotatedClasses"> <list> <value>com.jialin.entity.User</value> 
			</list> </property> -->
	</bean>
    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
	<!-- 配置事务管理器 (声明式的事务) -->
	<bean id="transactionManager"
		class="org.springframework.orm.hibernate5.HibernateTransactionManager">
		<property name="sessionFactory" ref="sessionFactory" />
	</bean>

	<!-- 配置事务通知属性 -->
	<tx:advice id="txadvice" transaction-manager="transactionManager">
		<!-- 定义事务传播属性 -->
		<tx:attributes>
			<!-- <tx:method name="add*" propagation="REQUIRED" /> <tx:method name="delete*" 
				propagation="REQUIRED" /> <tx:method name="modify*" propagation="REQUIRED" 
				/> hibernate4必须配置为开启事务 否则 getCurrentSession()获取不到 <tx:method name="*" propagation="REQUIRED" 
				read-only="true" /> -->
			<tx:method name="get*" read-only="false" propagation="REQUIRED" />
			<tx:method name="find*" read-only="false" propagation="REQUIRED" />
			<tx:method name="save*" read-only="false" propagation="REQUIRED" />
			<tx:method name="reg*" read-only="false" propagation="REQUIRED" />
			<tx:method name="modify*" read-only="false" propagation="REQUIRED" />
			<tx:method name="remove*" read-only="false" propagation="REQUIRED" />
			<tx:method name="*" propagation="REQUIRED" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<!-- 配置事务切面;那些类那些方法使用事务 -->
	<aop:config>
		<!-- 只对业务逻辑层实施事务 -->
		<aop:pointcut id="allManagerMethod"
			expression="execution(* com.fcq.schedule.job.service..*.*(..))" />
		<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txadvice" />
	</aop:config>
</beans>
applicationContext-beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans >
	<!-- Spring管理Struts2的Action -->
	<bean name="registerAction" class="com.fcq.schedule.job.action.RegisterAction"
		scope="prototype">
		<property name="userManager" ref="userManager"></property>
	</bean>
	<bean name="loginAction" class="com.fcq.schedule.job.action.LoginAction"
		scope="prototype">
		<property name="userManager" ref="userManager"></property>
	</bean>
	<bean name="ajaxUserNameVerifyAction" class="com.fcq.schedule.job.action.AjaxUserNameVerifyAction"
		scope="prototype">
		<property name="userManager" ref="userManager"></property>
	</bean>
	<bean name="queryUserOrProjectAction" class="com.fcq.schedule.job.action.QueryUserOrProjectAction"
		scope="prototype">
		<property name="userManager" ref="userManager"></property>
		<property name="projectManager" ref="projectManager"></property>
	</bean>
	<bean name="userMainAction" class="com.opensymphony.xwork2.ActionSupport"
		scope="prototype"></bean>
	<!-- Spring管理Struts2的Interceptor -->
	<!-- <bean name="checkLoginInterceptor" class="com.fcq.schedule.job.interceptor.CheckLogin" 
		scope="prototype"></bean> -->

    <!--用户业务逻辑类 -->
    <bean name="userManager" class="com.fcq.schedule.job.service.impl.UserManagerImpl">
        <property name="userDao" ref="baseDao"></property>
    </bean>
    <bean id="baseDao" class="com.fcq.schedule.job.dao.impl.UserDao">
        <property name="hibernateTemplate" ref="hibernateTemplate" />
    </bean>
    <!-- 项目业务逻辑类 -->
    <bean name="projectManager" class="com.fcq.schedule.job.service.impl.ProjectManagerImpl">
        <property name="projectDao" ref="projectDao"></property>
    </bean>
    <bean id="projectDao" class="com.fcq.schedule.job.dao.impl.ProjectDao">
        <property name="hibernateTemplate" ref="hibernateTemplate" />
    </bean>
    <!-- 任务业务逻辑类 -->
    <bean name="jobManager" class="com.fcq.schedule.job.service.impl.JobManagerImpl">
        <property name="jobDao" ref="jobDao"></property>
    </bean>
    <bean id="jobDao" class="com.fcq.schedule.job.dao.impl.JobDao">
        <property name="hibernateTemplate" ref="hibernateTemplate" />
    </bean>
	<!-- 任务关系业务逻辑类 -->
	<bean id="jobConnectionManager" class="com.fcq.schedule.job.service.impl.JobConnectionManagerImpl">
	   <property name="jobConnectionDao" ref="jobConnectionDao"></property>
	</bean>
	<bean id="jobConnectionDao" class="com.fcq.schedule.job.dao.impl.JobConnectionDao">
		<property name="hibernateTemplate" ref="hibernateTemplate" />
	</bean>
	<!-- 消息业务逻辑类 -->
	<bean id="messageManager" class="com.fcq.schedule.job.service.impl.MessageManagerImpl">
	   <property name="messageDao" ref="messageDao"></property>
	</bean>
	<bean id="messageDao" class="com.fcq.schedule.job.dao.impl.MessageDao">
		<property name="hibernateTemplate" ref="hibernateTemplate" />
	</bean>
</beans>

项目源码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100169.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Django

文章目录基础知识创建项目启动项目创建超级用户创建项目构建个人博客网站简单构建开启本地虚拟环境初步创建blog应用常用的模板标签和过滤器注&#xff1a;常用的模板标签注&#xff1a;常用的过滤器模板嵌套全局模板文件夹模板文件设置建议使用css美化页面导航栏页面美化css框…

捋一捋什么是MySQL插入意向锁?

Insert Intention Lock&#xff0c;中文我们也称之为插入意向锁。 这个可以算是对我们之前所讲的 Gap Lock 的一个补充&#xff0c;关于 Gap Lock&#xff0c;如果还有小伙伴不懂&#xff0c;可以参考&#xff1a;聊一聊MySQL的记录锁、间隙锁与 Next-Key Lock。 1. 为什么需…

Java基础之《netty(14)—异步模型》

一、基本介绍 1、异步的概念和同步相对。当一个异步过程调用发出后&#xff0c;调用者不能立刻得到结果。实际处理这个调用的组件在完成后&#xff0c;通过状态、通知和回调来通知调用者。 2、netty中的I/O操作是异步的&#xff0c;包括Bind、Write、Connect等操作会简单的返…

【云原生 | 47】etcdctl客户端的使用方法详解

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 &#x1f3c5;阿里云ACE认证高级工程师 &#x1f3c5;阿里云开发者社区专…

后台基础权限框架搭建实现[木字楠博客]

文章目录1、项目整合SpringSecurity1.1、引入SpringSecurity依赖1.2、启动测试1.3、自定义实体类继承UserDetails1.4、自定义配制文件1.5、重写loadUserByUsername方法1.6、自定义匿名访问注解1.8、编写SpringSecurity配制类后台权限框架搭建&#xff1a;本项目权限主要依赖Spr…

Polynomial Round 2022 (Div. 1 + Div. 2, Rated, Prizes!) A-C

比赛链接 目录 A. Add Plus Minus Sign 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; B. Coloring 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; C. Ice and Fire 题意&#xff1a; 思路&#xff1a; 代码&#xff1a; A. Add Plus Minus Sign 题意…

半导体芯片制造过程可以用哪种测量仪器

近年来&#xff0c;面对持续高涨的芯片需求&#xff0c;半导体行业生产迎来了高难度挑战——对芯片工艺要求更精细&#xff0c;从5nm到3nm&#xff0c;甚至是2nm。“先进封装”的提出&#xff0c;是对技术的新要求&#xff0c;也是对封装工艺中材料和设备的全新考验。 芯片身上…

节点电力市场生产商的战略竞标:凸松弛方法(Matlab实现)

目录 1 电力市场 1.1 什么是电力市场 1.2 电力市场发展历程 1.3 对传统电力系统理论的挑战 2 节点电力市场生产商的战略竞标&#xff1a;凸松弛方法 2.1 简介 2 Matlab代码 1 电力市场 1.1 什么是电力市场 市场&#xff1a;商品交换(交换商品的过程称交易)关系的总和 …

pikachu靶场验证码绕过详解

今天继续给大家介绍渗透测试相关知识&#xff0c;本文主要内容是pikachu靶场验证码绕过详解。 免责声明&#xff1a; 本文所介绍的内容仅做学习交流使用&#xff0c;严禁利用文中技术进行非法行为&#xff0c;否则造成一切严重后果自负&#xff01; 再次强调&#xff1a;严禁对…

endo-BCN-PEG3-Biotin,endo-BCN三聚乙二醇-生物素

【中文名称】endo-BCN三聚乙二醇-生物素 【英文名称】 endo-BCN-PEG3-Biotin&#xff0c;BCN-PEG3-Biotin (endo) 【CAS号】1263166-92-2 【分子式】C29H46N4O7S 【分子量】594.77 【基团部分】BCN 【纯度标准】95% 【外观颜色】 白色固体 &#xff08;具体由其分子量大小决定…

MyBatis学习 | 简介HelloWord

文章目录一、简介二、HelloWord2.1 环境搭建2.2 创建全局配置文件2.3 创建工具类2.4 创建数据库表和对应的JavaBean2.5 创建SQL映射文件2.6 非接口式与接口式编程2.6.1 非接口式编程2.6.2 接口式编程⭐2.7 简单总结学习地址&#x1f517; https://www.bilibili.com/video/BV1mW…

动态规划问题——换钱的方法数

题目&#xff1a; 给定数组arr&#xff0c;arr中所有的值都为正数且不重复。每个值代表一种面值的货币&#xff0c;每种面值的货币可以使用任意张&#xff0c;再给定一个整数aim&#xff0c;代表要找的钱数&#xff0c;求换钱有多少种方法。 举例&#xff1a; arr [5, 10, 2…

【PCL1.11.0+win10+vs2019】环境配置/ 点云格式转换及可视化

文章目录一、安装1.1 下载PCL1.2 安装PCL1.3 安装OSGeo4W二、配置2.1 配置环境变量2.2 配置VS2019三、点云格式转换以及可视化参考一、安装 1.1 下载PCL 首先我们需要下载pcl1.11.0 &#xff0c;这个版本与vs2019对应。 有两种下载方法&#xff1a;百度网盘、官网下载。二选一…

docker原理及服务编排

一、什么是docker Docker 是一个开源项目&#xff0c;诞生于2013年初&#xff0c;最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。项目后来加入了Linux基金会&#xff0c;遵从了Apache 2.0协议&#xff0c;项目代码在GitHub上进行维护。 Docker 项…

【毕业设计_课程设计】基于Spark网易云音乐数据分析

文章目录0 项目说明1 系统模块2 分析内容3 界面展示4 项目工程0 项目说明 基于Spark网易云音乐数据分析 提示&#xff1a;适合用于课程设计或毕业设计&#xff0c;工作量达标&#xff0c;源码开放 1 系统模块 包含爬虫,Scala代码,Spark,Hadoop,ElasticSearch,logstash,Flume…

基于ChatGPT实现微信智能机器人

ChatGPT近期以强大的对话和信息整合能力风靡全网&#xff0c;可以写代码、改论文、讲故事&#xff0c;几乎无所不能&#xff0c;这让人不禁有个大胆的想法&#xff0c;能否用他的对话模型把我们的微信打造成一个智能机器人&#xff0c;可以在与好友对话中给出意想不到的回应&am…

汇编语言笔记——接口技术与编程

文章目录传送门储存系统与技术材料高速储存器缓冲储存器&#xff08;Cache&#xff09;材料&#xff0c;局部性&#xff0c;访问方式Cache全相联映射Cache交换与一致性单核CPU一致性处理多核CPU的MESI协议主储存器&#xff08;内存&#xff09;主要技术指标容量带宽内存模组与内…

【JavaWeb】Servlet

Servlet简介 Servlet是sun公司开发动态web的一门技术Sun在这些API中提供一个接口叫做&#xff1a;Servlet&#xff0c;如果想开发一个Servlet程序&#xff0c;需要编写一个类&#xff0c;实现Servlet接口把开发好的Java类部署到web服务器中 把实现了Servlet接口的Java程序叫做…

【Anime.js】——Anime.js源码核心理解

一、Anime.js整体结构 Anime.js的强大之处在于代码量非常少&#xff0c;但功能却非常强大。让我们一起来探索Anime.js源码的核心吧~ Anime.js之所以能如此强大主要是因为它的代码结构设计的非常巧妙合理&#xff0c;所以我们想要掌握Anime.js的核心&#xff0c;首先我们要了解…

Linux内核基础篇——动态输出调试

文章目录配置内核编译选项debugfs文件系统挂载动态输出使用实际案例动态输出&#xff08;dynamic print&#xff09;是内核子系统开发者最喜欢的输出技术之一。 上篇说到printk调试&#xff0c;但printk是全局的&#xff0c;只能设置输出等级。而动态输出可以动态选择打开某个…