员工信息管理系统java6_实例:员工信息管理系统 StaffManagementSystem

一、创建测试数据库、测试表和测试数据

二、搭建Maven+SSM框架,粗浅的学习了一下pom文件中每个依赖的作用,基于Spring MVC实现了一个根据staff_id查询员工信息的controller

三、添加spring boot依赖,基于Spring boot实现一个查询员工(staff)信息的RESTFul服务(有关Spring boot的内容暂时到此为止)

四、实现查改删增:

当属性为空时,jsp页面会出现错误;

生成的staff类中Date是java.util.date类,而缺省的构造函数的入参是java.sql.date类,因此产生了一系列奇怪的提问,需要进一步排查和分析;

需要引入git管理代码;

Bug:获取到的日期存入数据库后比实际输入日期早一天,如输入2010.10.10,数据库中存储的日期为2010.10.09

Solution:数据库时区设置问题,开发时要保持java程序和数据库的时区一致

Bug:从前端页面新增员工信息时,数据库中的新增记录里日期为null

Solution:虽然在前端页面中,日期输入框的type是Date,但是后端从requst中获取到的是日期字符串,需要将字符串转换成日期,才能正确地保存到数据库中

五、重构代码,构建模块化的工程

Bug:controller无法扫描到定义的bean

Solution:service和service-impl代码在独立的module中,使用@Component注解标注了接口实现类后,还需要在service-impl模块中新建spring应用上下文配置文件,配置启动组件扫描。然后在web模块的上下文中引入service-impl的中的spring上下文。

中包含了,因此两者不必同时使用。

六、使用Spring Boot配置项目依赖,整合MyBatis和SpringMVC等框架

Step 1: Spring boot整合Druid和MyBatis

classpath:指的是工程编译后生成的target/classes目录,存放src目录下所有文件编译后的结果。(.class、.xml、.properties等文件)

ClassPathResource的用法:初始化String参数需要是classpath路径下具体的文件,不能使用类似*.xml的方式,会找不到文件.

如下代码可以匹配多个文件

PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver = new PathMatchingResourcePatternResolver();

sqlSessionFactoryBean.setMapperLocations(pathMatchingResourcePatternResolver.getResources("classpath:mapper/*.xml"));

Bug:application.properties中配置的参数不生效

Solution:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, DruidDataSourceAutoConfigure.class})

关闭DRUID和DataSource的自动配置

Bug:java.lang.IllegalArgumentException: Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required

Solution:MyBatis在1.2.0版本中取消了自动注入SqlSessionFactory 和 SqlSessionTemplate,需要手动创建有关的Bean

@Import引入.class配置

@ImportResource引入.xml配置

Step 2: Spring boot整合SpringMVC

!!!!!!构建Spring boot web jsp 应用需要的依赖!!!!!!

org.springframework.boot

spring-boot-starter-parent

2.0.4.RELEASE

org.springframework.boot

spring-boot-starter-web

javax.servlet

jstl

org.springframework.boot

spring-boot-starter-tomcat

provided

org.apache.tomcat.embed

tomcat-embed-jasper

provided

org.springframework.boot

spring-boot-starter-test

test

为配置类添加了@EnableWebMvc就关闭了SpringMVC的自动配置!!!

Bug:

9453f831b0d8

bug.png

配置了application.properties和WebApplication.java,所有都无误出现此问题

Solution:

https://bbs.csdn.net/topics/392343798?page=1

9453f831b0d8

solution.jpg

mvn clean install:清理、资源处理、编译、测试、打包,将打包生成的jar包和pom文件安装到maven本地仓库

mvn clean package:清理、资源处理、编译、测试,对编译生成的文件进行打包,默认名称是artifactId-version

mvn clean compile:清理、资源处理、编译、完成。编译所有源文件产生的.class文件保存在target/class目录下

REST API通过post传递参数的时候,不要直接将参数赋值给DO类的Bean,更好的做法是DTO类的Bean用于接收post请求中的参数,然后在controller的具体方法中将DTO转换成DO,然后操作数据库

工程整合和Dubbo后,用于在Controller层和Service层之间传递数据的DO对象需要实现Serializable接口

dao层的配置文件在Service层加载,web模块不需要在依赖dao模块和service-impl模块

启动一个非web的springboot应用程序,在main方法中使用如下代码启动,这样就不用为应用程序准备一个内嵌的web服务器:

new SpringApplicationBuilder(ServiceApplication.class)

.web(WebApplicationType.NONE)

.run(args);

SpringBoot使用Commons Logging进行所有内部日志记录,但底层日志实现保持开放状态。为Java Util Logging,Log4j2和Logback提供了默认配置。

SpringBoot能自动适配所有的日志,引入其他框架的时候,只需要把这个框架依赖的日志框架排除掉,SpringBoot默认帮我们配置好了日志,我们直接即可。

整合redis后,第一次查询报错,待修复

spring boot web应用程序全局异常处理:

@ControllerAdvice和@ExceptionHandler组合,默认情况下@ControllerAdvice监控所有的@RequestMapping方法,也可以对指定过滤的条件

StaffManagementSystem 2.0

1. Spring数据校验

通过实现Validator接口而实现的数据检验将会覆盖基于注解的JSR-303数据校验

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值