APP下载

基于Spring 3的风电功率预测Web展示系统的设计与实现

2014-07-03贾艳波

电脑知识与技术 2014年12期
关键词:主键风电场框架

贾艳波

摘要:该文应用Spring3框架及Spring自己的Spring MVC、Spring JPA等组件技术,结合freeMarker和jfreeChart技术,设计和开发了一个风电场功率预测Web系统。对于应用Spring3技术在提高系统的开发效率,提供更稳定的系统性能,有利于后期的维护和更新等企业级web应用开发实践中有一定的借鉴作用。

关键词:Web系统;风电功率预测; Spring 3

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)12-2747-03

Web System Based on Spring3 for Wind Farm Power Prediction

JIA Yan-bo

(Beifang University of Nationalities, Yinchuan 750021, China)

Abstract: In this paper, a web system for Wind farm power prediction is presented. By using annotation-based Spring 3 platform, and that own Spring MVC、Spring JPA and other component technologies,combined FreeMarker and JFreechart techmology, process of web design is simplified and quickly finished. In addition, the web system can be easily maintained and expanded.

Key words: web system; wind farm prediction; Spring 3

随着Internet网络技术的飞速发展, Web技术的成熟,为如今复杂的企业级应用提供了便利,其探讨的热点是如何建立开发更便捷、功能更强大、应用更灵活的Web应用。近年来SSH框架(即“Spring+struts+Hibernate”框架)就是比较流行的企业级开发框架。这种框架各取三种技术的优势,在简化开发的同时也带来了诸如初期学习框架困难、系统各层协调复杂等问题。

“轻量级容器架构”Spring以其易用性,扩展性和整合性,已经成为事实上的Java应用开发平台。Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架,是Java一站式轻量级平台的无冕之王。它全面减轻了构建多层web应用的负担,提供可复用的软件框架。

Spring自己提供了一个完整的类似于Struts,WebWork的MVC框架,它比使用其他的MVC框架的一个好处是可以更好地应用Spring容器提供的底层功能,且很好地体现了Spring框架的设计目标就是简化Java企业应用的开发。Spring MVC是非常优秀的MVC框架,尤其是2009年在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,正应了那句话简单就是美;而且它强大不失灵活,性能也很优秀。它采用了松耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。Spring3 MVC通过一套MVC注解,让POJO成为处理请求的控制器,无须实现任何接口;同时,Spring3 MVC还支持REST风格的URL请求:注解驱动及REST风格的Spring3 MVC是Spring3.0最出彩的功能之一。此外,Spring3 MVC在数据绑定、视图解析、本地化处理及静态资源处理上都有许多不俗的表现。它在框架设计、扩展性、灵活性等方面全面超越了Struts、WebWork等MVC框架,从原来的追赶者一跃成为MVC的领跑者。

在Spring 中集成了来自 EJB 3.0 和 Java EE5 规范的 JPA 持久性栈,使之成为 Spring 支持数据库访问的最简单而且也是标准的方式。这使得Spring 框架可以不在需要通过其他对象到关系的映射(ORM)技术,如Hibernate来支持持久性。Spring支持JPA,这使得为关系数据库编写、读取、搜索、更新和删除对象(POJO)的烦琐工作变得透明。可以继续使用 Java 语言面向对象的语法处理 POJO,JPA ORM 层负责数据库表的创建、查询、更新代码和删除代码。除了透明的数据库操作,Spring的JPA支持还把各种五花八门的特定于数据库厂商的异常转换成一套定义良好的异常,使得异常处理代码大为简化。

1 系统的架构

风电功率预测web展示系统采用多层架构模型,分别为Web层、服务层、模型层、数据层等,如图1所示。

图1中Web开发框架选用Spring自带的Web框架技术:基于注解Spring 3 MVC的框架。持久化层采用Spring JPA,具有基于元数据注解、面向对象的查询语言等简化系统的数据持久化编程。为了系统安全问题,我们在系统中采用Spring Security技术,对用户进行认证和权限管理等Web安全性实现。这正是基于Spring技术的优势,简单性的体现。

2 系统分层设计

2.1 model模型层设计

模型层主要设计POJO类。下面是本系统模型层业务实现所设计的主要POJO类,其关系类图如图2所示:

所有类均实现了Serializable接口。

1)Powerprediction4h:4小时功率预测数据PO类

2)Powerprediction72h:72小时功率预测数据PO类endprint

3)Powerrealtime:功率实时数据PO类

4)Weatherprediction:气象预测数据PO类

5)Weatherrealtime:气象实时数据PO类

6)System:系统数据PO类

POJO类(Plain Old Java Objects)作为JPA PO的持久化类,为Service层(服务层)调用操作数据库。POJO类作为JPA PO的持久化类由两部分组成::持久化类与注释,属性和数据表的列一一对应。它们通过持久化类上的注释负责把持久化类映射到数据表,并将持久化类的属性映射到数据列。注释采用“at”标记形式(@ ),后面是注释名称。属性映射采用在持久化类的属性getter方法上进行标记,如在Weatherprediction类的id属性getter方法上标记@ id,定义了持久化类的主键信息,@GeneratedValue标记用来制定主键的生成策略。相对于别的ORM框架传统模式的xml文件配置,注释具有如描述符大量减少、编译期校验等不少优点。

2.2服务层设计

服务层通过封装实体管理类完成商业逻辑,Web层通过调用服务类完成各模块的业务。所有服务类通过调用实体管理类操作持久化对象。Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现。如功率预测模块的服务类 PowerdataService。其类图如图3所示。所有服务类通过调用实体管理类操作持久化对象。

PowerdataService类:提供了对功率数据72小时主键查询、4小时主键查询、未来72小时预测数据查询、未来24小时预测数据查询、未来4小时预测数据查询、24小时实时数据查询、4小时实时数据查询、实时历史数据查询以及4小时和72小时数据更新等操作。

从以上类的结构我们可以看到,Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现数据库查询。

2.3 控制和视图层设计

控制和视图层采用FreeMarker设计视图显示模板、用Java程序准备要显示的数据,在本系统中这些Java程序还承担了Control控制器类的角色。设计出的模板页面和Java程序是一一对应的关系。FreeMarker是一个免费的模板引擎,使用纯Java编写,是一个基于模板生成文本输出的通用工具。表1列出了本系统功率预测数据显示功能所需的模板页面及其对应的Java程序。

3 采用JFreeChart技术展示风电功率预测数据

风电场功率预测Web系统的界面展示大多需以各种图表展示,故本系统采用JFreeChart来开发各种各样的图表作为Java程序要准备的数据。系统中主要使用JFreeChart生成4h、24h、72h、实时等功率数据的折线图,生成风速序列图、风向玫瑰图、风廓线等,以及生成湿度、温度、气压等时间序列图,作为FreeMarker的数据准备。如图4所示是一个采用JFreeChart技术生成的风速预测24小时时序图。

4 结论

采用基于Spring框架,整合FreeMarker、JFreeChart等技术、以 JBOSS 作为 Web 服务器、ORACLE 作为后台数据库实现了风电场功率预测的Web系统。系统所开发的风电场功率预测Web系统基于当前最流行的基于注解的Spring3技术,采用多层架构设计,分解层与层之间的耦合,集成Spring框架中相关应用技术,简化了系统开发,提高了系统开发效率和灵活性,同时有利于系统的进一步扩展和维护。目前,包括本系统在内的整个风电场功率预测系统已投入到宁夏某风电场的试运行中。情况表明,系统的功能较完整、实用,具有良好的高效性、灵活性、扩展性和工程实用价值。

参考文献:

[1] 耿天翔,丁茂生.宁夏电网风电功率预测系统开发[J].宁夏电力,2010(1).

[2] 孙卫琴.精通Struts:基于MVC的java WEB设计与开发[M].北京:电子工业出版社,2004.

[3] 计文柯.Spring技术内幕-深入解析Spring架构与设计原理[M].2版.北京:机械工业出版社 2011.

[4] IBM[EB/OL].http://www.ibm.com/developerworks/cn/education/java/j-spring2/section7.html.

[5] 马黎明.基于J2EE平台的Web应用系统研究[D].武汉:武汉理工大学,2004.

[6] 陈雄华,林开雄.Spring 3.x企业应用开发实战[M].北京:电子工业出版社,2012.

[7] Jiandong Mao, Xiaojing Zhang.Ultra-short-term wind power forecasting based on wavelet transform and BP neural network[C].2012 International Conference on Power Electronics Engineering and Computer Technology (PEECT 2012), 2012.endprint

3)Powerrealtime:功率实时数据PO类

4)Weatherprediction:气象预测数据PO类

5)Weatherrealtime:气象实时数据PO类

6)System:系统数据PO类

POJO类(Plain Old Java Objects)作为JPA PO的持久化类,为Service层(服务层)调用操作数据库。POJO类作为JPA PO的持久化类由两部分组成::持久化类与注释,属性和数据表的列一一对应。它们通过持久化类上的注释负责把持久化类映射到数据表,并将持久化类的属性映射到数据列。注释采用“at”标记形式(@ ),后面是注释名称。属性映射采用在持久化类的属性getter方法上进行标记,如在Weatherprediction类的id属性getter方法上标记@ id,定义了持久化类的主键信息,@GeneratedValue标记用来制定主键的生成策略。相对于别的ORM框架传统模式的xml文件配置,注释具有如描述符大量减少、编译期校验等不少优点。

2.2服务层设计

服务层通过封装实体管理类完成商业逻辑,Web层通过调用服务类完成各模块的业务。所有服务类通过调用实体管理类操作持久化对象。Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现。如功率预测模块的服务类 PowerdataService。其类图如图3所示。所有服务类通过调用实体管理类操作持久化对象。

PowerdataService类:提供了对功率数据72小时主键查询、4小时主键查询、未来72小时预测数据查询、未来24小时预测数据查询、未来4小时预测数据查询、24小时实时数据查询、4小时实时数据查询、实时历史数据查询以及4小时和72小时数据更新等操作。

从以上类的结构我们可以看到,Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现数据库查询。

2.3 控制和视图层设计

控制和视图层采用FreeMarker设计视图显示模板、用Java程序准备要显示的数据,在本系统中这些Java程序还承担了Control控制器类的角色。设计出的模板页面和Java程序是一一对应的关系。FreeMarker是一个免费的模板引擎,使用纯Java编写,是一个基于模板生成文本输出的通用工具。表1列出了本系统功率预测数据显示功能所需的模板页面及其对应的Java程序。

3 采用JFreeChart技术展示风电功率预测数据

风电场功率预测Web系统的界面展示大多需以各种图表展示,故本系统采用JFreeChart来开发各种各样的图表作为Java程序要准备的数据。系统中主要使用JFreeChart生成4h、24h、72h、实时等功率数据的折线图,生成风速序列图、风向玫瑰图、风廓线等,以及生成湿度、温度、气压等时间序列图,作为FreeMarker的数据准备。如图4所示是一个采用JFreeChart技术生成的风速预测24小时时序图。

4 结论

采用基于Spring框架,整合FreeMarker、JFreeChart等技术、以 JBOSS 作为 Web 服务器、ORACLE 作为后台数据库实现了风电场功率预测的Web系统。系统所开发的风电场功率预测Web系统基于当前最流行的基于注解的Spring3技术,采用多层架构设计,分解层与层之间的耦合,集成Spring框架中相关应用技术,简化了系统开发,提高了系统开发效率和灵活性,同时有利于系统的进一步扩展和维护。目前,包括本系统在内的整个风电场功率预测系统已投入到宁夏某风电场的试运行中。情况表明,系统的功能较完整、实用,具有良好的高效性、灵活性、扩展性和工程实用价值。

参考文献:

[1] 耿天翔,丁茂生.宁夏电网风电功率预测系统开发[J].宁夏电力,2010(1).

[2] 孙卫琴.精通Struts:基于MVC的java WEB设计与开发[M].北京:电子工业出版社,2004.

[3] 计文柯.Spring技术内幕-深入解析Spring架构与设计原理[M].2版.北京:机械工业出版社 2011.

[4] IBM[EB/OL].http://www.ibm.com/developerworks/cn/education/java/j-spring2/section7.html.

[5] 马黎明.基于J2EE平台的Web应用系统研究[D].武汉:武汉理工大学,2004.

[6] 陈雄华,林开雄.Spring 3.x企业应用开发实战[M].北京:电子工业出版社,2012.

[7] Jiandong Mao, Xiaojing Zhang.Ultra-short-term wind power forecasting based on wavelet transform and BP neural network[C].2012 International Conference on Power Electronics Engineering and Computer Technology (PEECT 2012), 2012.endprint

3)Powerrealtime:功率实时数据PO类

4)Weatherprediction:气象预测数据PO类

5)Weatherrealtime:气象实时数据PO类

6)System:系统数据PO类

POJO类(Plain Old Java Objects)作为JPA PO的持久化类,为Service层(服务层)调用操作数据库。POJO类作为JPA PO的持久化类由两部分组成::持久化类与注释,属性和数据表的列一一对应。它们通过持久化类上的注释负责把持久化类映射到数据表,并将持久化类的属性映射到数据列。注释采用“at”标记形式(@ ),后面是注释名称。属性映射采用在持久化类的属性getter方法上进行标记,如在Weatherprediction类的id属性getter方法上标记@ id,定义了持久化类的主键信息,@GeneratedValue标记用来制定主键的生成策略。相对于别的ORM框架传统模式的xml文件配置,注释具有如描述符大量减少、编译期校验等不少优点。

2.2服务层设计

服务层通过封装实体管理类完成商业逻辑,Web层通过调用服务类完成各模块的业务。所有服务类通过调用实体管理类操作持久化对象。Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现。如功率预测模块的服务类 PowerdataService。其类图如图3所示。所有服务类通过调用实体管理类操作持久化对象。

PowerdataService类:提供了对功率数据72小时主键查询、4小时主键查询、未来72小时预测数据查询、未来24小时预测数据查询、未来4小时预测数据查询、24小时实时数据查询、4小时实时数据查询、实时历史数据查询以及4小时和72小时数据更新等操作。

从以上类的结构我们可以看到,Service层的设计的服务类在系统的主要功能是根据上层业务需要通过Spring JPA对数据进行各种查询。所以它的主要实现代码实质是使用JPA的HQL查询语言实现数据库查询。

2.3 控制和视图层设计

控制和视图层采用FreeMarker设计视图显示模板、用Java程序准备要显示的数据,在本系统中这些Java程序还承担了Control控制器类的角色。设计出的模板页面和Java程序是一一对应的关系。FreeMarker是一个免费的模板引擎,使用纯Java编写,是一个基于模板生成文本输出的通用工具。表1列出了本系统功率预测数据显示功能所需的模板页面及其对应的Java程序。

3 采用JFreeChart技术展示风电功率预测数据

风电场功率预测Web系统的界面展示大多需以各种图表展示,故本系统采用JFreeChart来开发各种各样的图表作为Java程序要准备的数据。系统中主要使用JFreeChart生成4h、24h、72h、实时等功率数据的折线图,生成风速序列图、风向玫瑰图、风廓线等,以及生成湿度、温度、气压等时间序列图,作为FreeMarker的数据准备。如图4所示是一个采用JFreeChart技术生成的风速预测24小时时序图。

4 结论

采用基于Spring框架,整合FreeMarker、JFreeChart等技术、以 JBOSS 作为 Web 服务器、ORACLE 作为后台数据库实现了风电场功率预测的Web系统。系统所开发的风电场功率预测Web系统基于当前最流行的基于注解的Spring3技术,采用多层架构设计,分解层与层之间的耦合,集成Spring框架中相关应用技术,简化了系统开发,提高了系统开发效率和灵活性,同时有利于系统的进一步扩展和维护。目前,包括本系统在内的整个风电场功率预测系统已投入到宁夏某风电场的试运行中。情况表明,系统的功能较完整、实用,具有良好的高效性、灵活性、扩展性和工程实用价值。

参考文献:

[1] 耿天翔,丁茂生.宁夏电网风电功率预测系统开发[J].宁夏电力,2010(1).

[2] 孙卫琴.精通Struts:基于MVC的java WEB设计与开发[M].北京:电子工业出版社,2004.

[3] 计文柯.Spring技术内幕-深入解析Spring架构与设计原理[M].2版.北京:机械工业出版社 2011.

[4] IBM[EB/OL].http://www.ibm.com/developerworks/cn/education/java/j-spring2/section7.html.

[5] 马黎明.基于J2EE平台的Web应用系统研究[D].武汉:武汉理工大学,2004.

[6] 陈雄华,林开雄.Spring 3.x企业应用开发实战[M].北京:电子工业出版社,2012.

[7] Jiandong Mao, Xiaojing Zhang.Ultra-short-term wind power forecasting based on wavelet transform and BP neural network[C].2012 International Conference on Power Electronics Engineering and Computer Technology (PEECT 2012), 2012.endprint

猜你喜欢

主键风电场框架
广义框架的不相交性
基于PSS/E的风电场建模与动态分析
WTO框架下
含风电场电力系统的潮流计算
一种基于OpenStack的云应用开发框架
探求风电场的远景
代力吉风电场的我们
数据库主键设置探讨