SSM框架整合(简单的员工签到管理系统源码)(Eclipse +maven)

1 篇文章 0 订阅
1 篇文章 0 订阅

SSM框架整合(简单的员工签到管理系统源码)(Eclipse +Maven)

Spring
Spring侧重于业务逻辑方面。Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
IOC:控制反转也叫依赖注入。利用了工厂模式将对象交给容器管理,只需要在spring配置文件总配置相应的bean,以及设置相关的属性,让spring容器来生成类的实例对象以及管理对象。在spring容器启动的时候,spring会把你在配置文件中配置的bean都初始化好,然后在你需要调用的时候,就把它已经初始化好的那些bean分配给你需要调用这些bean的类(假设这个类名是A),分配的方法就是调用A的setter方法来注入,而不需要你在A里面new这些bean了。
Spring 最认同的技术是控制反转的依赖注入(DI)模式。控制反转(IoC)是一个通用的概念,它可以用许多不同的方式去表达,依赖注入仅仅是控制反转的一个具体的例子。
当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入(或者有时被称为配线)有助于将这些类粘合在一起,并且在同一时间让它们保持独立。
Spring框架的核心:依赖注入,将这两个词分开来看一看。这里将依赖关系部分转化为两个类之间的关联。例如,类 A 依赖于类 B。现在,让我们看一看第二部分,注入。所有这一切都意味着类 B 将通过 IoC 被注入到类 A 中。依赖注入可以以向构造函数传递参数的方式发生,或者通过使用 setter 方法 post-construction。
面向切面(AOP):
AOP只是Spring的特性,它就像OOP一样是一种编程思想,并不是某一种技术,AOP可以说是对OOP的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。将程序中的交叉业务逻辑(比如安全,日志,事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。
实现AOP的技术,主要分为两大类:一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码。
Spring MVC
Spring MVC属于Spring Framework的后续产品,侧重于Controller层,已经融合在Spring Web Flow里面,它原生支持的Spring特性,让开发变得非常简单规范。Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis
MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。可以这么理解,MyBatis是一个用来管理数据增删改查的框架。
SSM搭建设计分析
使用Maven生成war项目——>web.xml文件引入spring启动容器,springmvc前端控制器——>编写spring配置文件aplicationContext.xml(配置扫描器,数据源,整合Mybatis,事务控制,将mapper接口加入ioc容器),编写springmvc配置文件dispatcherServlet-servlet.xml(扫描控制器,配置视图解析器,springMVC的标准配置)——>Mybatis配置(配置mapper驼峰命名法,为包名起别名,配置PageHelper组件)——>SSM搭建完毕,使用MySql建数据库(两张表,tbl-emp、tbl-dept,员工表,部门表)——>使用mybatis generator逆向工程生成bean,Mapper,数据库映射文件mapper.xml——>前端页面(搭建页面,搭建模态框(修改,添加员工信息))——>controller装配对应的jsp请求的方法——>通用的返回类(Msg.java)。
使用Maven(亲测版本依赖没有冲突)
使用maven建立打包类型的war的项目,在pom.xml中配置项目所需的所有函数依赖,
所需的所有jar包如下(版本与相关依赖由maven自动寻找下载):
spring-webmvc-4.3.7.RELEASE.jar
spring-aop\4.3.7.RELEASE\spring-aop-4.3.7.RELEASE.jar
spring-beans-4.3.7.RELEASE.jar
spring-context-4.3.7.RELEASE.jar
spring-core-4.3.7.RELEASE.jar
commons-logging-1.2.jar
spring-expression-4.3.7.RELEASE.jar
spring-web-4.3.7.RELEASE.jar
spring-jdbc-4.3.7.RELEASE.jar
pring-tx-4.3.7.RELEASE.jar
spring-test-4.3.7.RELEASE.jar
spring-aspects-4.3.7.RELEASE.jar
aspectjweaver-1.8.9.jar
mybatis-3.4.2.jar
mybatis-spring-1.3.1.jar
pagehelper-5.0.0.jar
jsqlparser-0.9.5.jar
mybatis-generator-core-1.3.5.jar
c3p0-0.9.1.2.jar
mysql-connector-java-8.0.18.jar
protobuf-java-3.6.1.jar
jstl-1.2.jar
javax.servlet-api-3.1.0.jar
jackson-databind-2.9.10.1.jar
jackson-annotations-2.9.10.jar
jackson-core-2.9.10.jar
hibernate-validator-5.4.1.Final.jar
validation-api-1.1.0.Final.jar
D:\mavenrp\org\jboss\logging\jboss-logging\3.3.0.Final\jboss-logging-3.3.0.Final.jar
D:\mavenrp\com\fasterxml\classmate\1.3.1\classmate-1.3.1.jar
D:\mavenrp\junit\junit\4.12\junit-4.12.jar
D:\mavenrp\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar

具体的配置文件编写见源码

数据库MySQL
建表语句


tbl_dept:
CREATE TABLE `tbl_dept` (
		  `dept_id` int(11) NOT NULL,
		  `dept_name` varchar(255) DEFAULT NULL,
		  PRIMARY KEY (`pid`),
		
		) ENGINE=InnoDB DEFAULT CHARSET=utf8;
tbl_emp:
CREATE TABLE `tbl_emp` (
		  `emp_id` int (11)NOT NULL,
		  `emp_name` varchar(255) DEFAULT NULL,
		  `gender` char(1) DEFAULT NULL,
		  `email` varchar(255) DEFAULT NULL,
		  `d_id` int(11) DEFAULT NULL,
          `edate` datetime DEFAULT NULL,
		  PRIMARY KEY (`emp_id`)
          KEY `sfk_0001` (`d_id`),
		  CONSTRAINT `sfk_0001` FOREIGN KEY (`d_id`) REFERENCES `tbl_dept` (`dept_id`)

		) ENGINE=InnoDB DEFAULT CHARSET=utf8;
tbl_user:
CREATE TABLE `tbl_user`  (
  `username` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `password` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  PRIMARY KEY (`username`) USING BTREE,
  CONSTRAINT `fk_emp_user` FOREIGN KEY (`username`) REFERENCES `tbl_emp` (`email`) ON DELETE RESTRICT ON UPDATE RESTRICT
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

项目运行效果:
公司员工丑陋的页面1丑陋的页面2
后台管理,没有写逻辑,随便登录就好
后台管理登录签到信息管理
源码github地址
https://github.com/Alyssa7898/-11702-.git
百度云地址
https://pan.baidu.com/s/1iT2o1NdTXxqyzEikvzl_gg
提取码:56rr

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值