今天简单的把spring boot 的框架写了一遍,简单的前后端写的差不多了。写了实时天气预报,未来七天的温度变化,和表格的增删改查,用canvas画了下温度折线图
有待解决的部分
- pom.xml中的依赖是引入了什么jar包,有什么用处。
- 代码中许多注释的用处,在框架的构建中能起着什么作用
- tomcat的搭建是哪个依赖?或是配置的方法
今天的收获
4. spring boot 项目搭建中,GroupId的命名为 域名.公司名/姓名缩写 ArtifactId 的命名为项目名,可以是项目名-姓名缩写-项目模块部分简写,如 GroupId com.lwk ArtifactId wforecast-lwk-main
5. 框架的划分可以为 web, js, controller, service ,serviceImpl, entity, dao, mapper, listener, utils, 和 application ,properties 分别为网页部分,js文件,控制器层,服务层,服务实现类,实体类, 数据层AMapper继承BaseMapper,BaseMappper定义,监听器,静态方法和启动类设置,属性文件设置。 首先创建实体类,weather ,引用@Entity注释为实体的意思,属性,@Id 注释为主键,@GeneratedValue注解存在的意义主要就是为一个实体生成一个唯一标识的主键,连接数据库后执行启动类可自动创建表(JPA要求每一个实体Entity,必须有且只有一个主键), @GeneratedValue提供了主键的生成策略。@GeneratedValue注解有两个属性,分别是strategy和generator,其中generator属性的值是一个字符串,默认为"",其声明了主键生成器的名称(对应于同名的主键生成器@SequenceGenerator和@TableGenerator)。这里有个问题是实体类必须要有一个默认构造方法,如public Weather(){} 不然会报错,具体原因我没有深究
6. mapper中BaseMapper不能和普通继承的mapper放在同一个包下,会有冲突,报错
7. Application 启动类必须在所有包上级,即application都能访问到所有包才行,不然会报错
8. DateFormat 可以设置 Date 的格式 例如为 yyyy-MM-dd HH:mm:ss ,也可以用@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”)注释Date定义格式。
9. 一般数据库查找结果为对象,就用对象来接,查找结果为多个对象,则用list来接多个对象
10. 前端尽量用一个请求将需要的数据从后台一次拿过来,不要一个方法分多个请求来拿数据,请求数越少越好。
11. 在天气预报的数据查询中,学会减少查询时间的思维方式,如天气预报数据应分为实时天气数据表,预测天气数据表,历史天气数据表三个表,实时天气数据表只存有一条数据,方便快速对该数据进行更新,预测天气数据表只存有预测几天或者24小时的天气数据,查询量少,历史天气数据表相对较大,用于翻看以前时间天气的情况,查询时间较长。实时天气每更新一次,就向历史天气数据表插入该实时数据作为记录。
12. 阿里云中的云市场里有许多免费的API接口,可以获取一些数据做测试用,用空可以研究,其中就有天气预报Api,能获取JSON数据,可采用 fastJSON 的方法解析数据存到数据库中。
**明日任务清单**
- 编写多个实体,创建实时天气数据表,预测天气数据表,历史天气数据表三个表,实现实时数据更新,天气预测,历史数据查询的功能
- 设置在最高温度和最低温度范围内的当前温度的随机数(没有真实地数据),编写监听器listener监听时间,触发每小时对实时数据表进行更新和历史表的插入的事件。
- 扩展,用fastjson 对接口获取的json数据进行解析,创建对应的对象,将json数据存储进数据库的表中。
- 了解框架中注释的用法和意义
- 依赖的用法和意义。
- 继续完善天气预报系统,熟悉增删改查,美化系统。