




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8综合实例充电站管理系统8.1背景知识--
Spring简介2004年,SpringFramework1.0正式发布Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架Spring是Java企业版(JavaEnterpriseEdition,JEE,也称J2EE)的轻量级代替品,Spring为企业级Java开发提供了一种相对简单的方法,用简单的Java对象(PlainOldJavaObject,POJO)实现了EJB的功能8.1背景知识--
Spring产生的初衷(1)JAVAEE开发应该更加简单;(2)使用接口而不是使用类,是更好的编程习惯;(3)为JavaBean提供了一个更好的应用配置框架;(4)更多地强调面向对象的设计;(5)尽量减少不必要的异常捕捉;(6)使应用程序更加容易测试。8.1背景知识--
Spring能力(1)最完善的轻量级核心框架;(2)通用的事务管理抽象层;(3)JDBC抽象层;(4)灵活的MVCWeb应用框架。8.1背景知识--
SpringBoot从本质上说,SpringBoot就是SpringSpringBoot把你从复杂的配置工作中解放出来,从而可以聚焦于项目开发本身。有了SpringBoot,可以很容易创建一个Spring框架的项目,而几乎不用进行Spring配置8.1背景知识--
IntelliJIDEA介绍IntelliJIDEA,是Java编程语言开发的集成环境IntelliJ
IDEA在业界被公认为最好的Java开发工具智能代码助手、代码自动提示、重构、J2EE支持…8.2创建一个SpringBoot项目(1)
8.2创建一个SpringBoot项目(2)
8.2创建一个SpringBoot项目(3)
Group:组织名,对应Java包的结构Artifact:项目唯一标识,对应项目名称,要求全小写字母。由于我们实践的项目是充电站管理系统,所以我们使用名称cdzType:项目类型,此处不需要修改,保持MavenProject即可Packaging:打包类型,默认打包成Jar文件即可JavaVersion:JDK版本Language:开发语言,默认选中JAVA即可Version:初始项目版本Description:项目描述,里面用一句话简短的介绍下项目Name:项目名称,我们使用名称CdzSystemPackage:包名,默认由Group+Artifact组合而成8.2创建一个SpringBoot项目(4)
8.3
项目结构8.3
项目结构
--
启动类在项目中,src为项目代码目录,SpringInitializr为我们在cdz包里默认创建了一个CdzSystemApplication文件,这是Spring的启动执行类:@SpringBootApplicationpublicclassCdzSystemApplication{publicstaticvoidmain(String[]args){SpringApplication.run(CdzSystemApplication.class,args);}}8.3
项目结构
--
Spring注解注解是JDK5.0引入的一种代码注释说明机制,注解一般有以下三类作用:格式检查:告诉编译器信息,比如被@Override标记的方法如果不是父类的某个方法,IDE会报错;减少配置:运行时动态处理,得到注解信息,实现代替配置文件的功能;比如@SpringBootApplication,代表被注解的类是一个Spring启动类。减少重复工作:比如@Autowired,它可以帮我们对被注解的元素自动完成装配,我们会在后面使用时详细说明。8.4项目设计--代码层级设计resources目录暂时只存放配置文件pertieswebapp存放用jsp和js编写的前端页面代码java目录存放我们用java语言写的代码,我们大多数后台逻辑代码都存放在此处。8.5登录功能开发(1)开发一个登录功能,我们需要开发以下三部分:数据库新增一个用户表user,用来存储用户的用户名,密码webapp目录中开发登录对应的jsp页面java目录下开发用户表数据库设计对应的登录逻辑后台代码,用来响应用户的登录行为。8.5登录功能开发(2)--用户表数据库设计user表中新增三个字段即可满足我们需求:id作为自增主键user_name作为用户名,因为用户名一般为字符串,所以我们字段的类型设置为VARCHAR,长度设置为32即可password作为用户密码,用户密码一般也是字符串,所以类型同样设置为VARCHAR。8.5登录功能开发(3)--新增login.jsp创建目录page,然后在page目录下新建一个login.jsp文件。打开perties配置文件,在其中添加以下几行:spring.mvc.view.prefix=/page/spring.mvc.view.suffix=.jspspring.http.encoding.force=truespring.http.encoding.charset=UTF-8spring.http.encoding.enabled=trueserver.tomcat.uri-encoding=UTF-88.5登录功能开发(4)--SpringController在Spring框架中,DispatcherServlet负责分发请求到控制器Controller处理。Controller负责接收用户请求,Controller收到用户请求后,经过一定处理后,将处理结果返回给对应View进行显示。Spring定义一个Controller非常简单,在这个类上添加一个注解@Controller即可。8.5登录功能开发(5)--响应登录请求的Controller我们在MainController上面添加了@Controller说明这个类是一个Spring的Controller。现在MainController就可以响应用户的请求。方法loginPage添加了一个注解@RequestMapping。
这个被注解的方法将响应用户的login请求。在方法中,我们直接返回了一个字符串login,这里的意思是说,将login.jsp页面返回给用户。8.5登录功能开发(6)--页面发起登录行为我们可以将loginName和loginPassword两个input的中数据传递给后台的/api/login接口。一旦后台处理成功,我们可以在success函数中,根据后台返回的结果,进行相应的处理。8.5登录功能开发(7)--创建User类User表的字段和表结构一一对应,并添加对应的getter和setter方法。8.5登录功能开发(8)--JdbcTemplateJdbcTemplate是Spring提供的,为了提供访问数据库能力的类。JdbcTemplate为我们提供了以下方法:update方法,新增、修改、删除数据库数据queryForObject方法,读取匹配的单条数据query方法,读取匹配到的数据库的一组数据8.5登录功能开发(9)--创建UserService
UserService添加了@Service注解,这个注解的意思是,UserService是一个业务层组件,用于提供具体的业务功能,比如我们这里新增的login函数。8.5登录功能开发(10)--后台处理登录行为两个参数:name和password,而且这两个参数上都添加了注解@RequestParam。这个注解的含义是说明这两个参数是由前端接口传递来的。也就是跟我们在页面传递的name和password两个参数是一一对应的。8.6注册页面开发(1)8.6注册页面开发(2)--注册接口开发8.7上传下载文件(1)8.7上传下载文件(2)–下载接口getParameterMap函数可以获取传递来的参数,我们从中取出name参数,作为文件名,然后直接打开files目录下对应的文件并返回即可。8.7上传下载文件(3)–上传接口函数的参数类型为MultipartFile,是因为我们在页面上传时,指定了提交类型为"multipart/form-data"
。8.8
发送邮件(1)Sun公司提供了JavaMail用来实现邮件发送,但是配置烦琐。Spring中提供了JavaMailsender用来简化邮件配置SpringBoot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。8.8发送邮件(2)–参数配置8.8发送邮件(3)–后台接口8.8发送邮件(4)–发送页面8.9绘制图表(1)ECharts是百度开源的纯Javascript图表库支持折线图(区域图)、柱状图(条状图)、散点图(气泡图)、K线图、饼图(环形图)、雷达图(填充雷达图)、和弦图、力导向布局图、地图、仪表盘、漏斗图、事件河流图等12类图表同时提供标题,详情气泡、图例、值域、数据区域、时间轴、工具箱等7个可交互组件,支持多图表、组件的联动和混搭展现。8.9绘制图表(2)8.10导出Excel(1)Java解析、生成Excel比较有名的框架有Apachepoi、jxl他们都存在一个严重的问题就是非常的耗内存poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。8.10导出Excel(2)使用EasyExcel生成Excel十分简单,我们下面只使用一行代码就可以实现该功能: EasyExcel.write("users.xlsx",User.class).sheet("用户列表").doWrite(userService.getUsers());小结通过本章的学习,我们依次介绍了:如何将用户在浏览器的请求映射到JSP页面中如何将页面中的ajax请求传递到后台java代码中如何通过JDBC对数据库进行增删改查文件的上传下载发送邮件绘制图表导出Excel。后续的开发习题(1)为用户增加上次登录时间、登录次数属性,在每次用户登录后记录。为用户增加姓名属性,要求注册时填入。为用户增加邮箱属性,要求注册时填入。在注册时,检查邮箱未被使用,如已经被使用,报错提醒用户。在登录页面增加找回密码功能。点击找回密码,跳转到新页面,用户输入自己的邮箱后,系统将用户密码发送到用户的邮箱。参考8.7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024四川雅安市雅茶集团茶业有限公司第一期招聘拟聘用人员笔试参考题库附带答案详解
- 2025年软件设计师专业考试模拟试卷:软件测试与缺陷预防策略试题
- 2025年小学语文毕业升学考试句式变换与修辞策略详解全真模拟试题
- 2025年中学教师资格考试《综合素质》教育研究方法教育史题(含答案)试题
- 2025年小学英语语音语调能力提升模拟试卷(毕业考试)
- 2025年小学教师资格考试《综合素质》教育资源整合试题答案及解题技巧
- 2025年电子商务师职业资格考试题库:电子商务数据分析实战案例
- 贵州中医药大学时珍学院《全科医学概论A》2023-2024学年第二学期期末试卷
- 南通大学杏林学院《水工建筑物(上)》2023-2024学年第一学期期末试卷
- 2025公寓房买卖合同(现售)示范文本
- 古代汉语-形考任务1-3-国开-参考资料
- 《预防未成年人犯罪》课件(图文)
- Q∕GDW 12152-2021 输变电工程建设施工安全风险管理规程
- 冶金等工贸企业安全生产标准化达标信息管理系统[冶金等工贸企业安全生产标准化达标信息管理系统](-33)
- 《阅读与写作》课程教学大纲
- 英语话剧剧本<美女与野兽>
- 纯滞后控制技术
- 课件使用详细说明书写法
- 单位消防安全三自主两公开一承诺登记表
- 模拟飞行Xsdk的安装方法
- PCB加工工艺要求说明书经典模板
评论
0/150
提交评论