CN110275702A - 一种Java Web项目的表现层数据格式化系统 - Google Patents
一种Java Web项目的表现层数据格式化系统 Download PDFInfo
- Publication number
- CN110275702A CN110275702A CN201910565108.8A CN201910565108A CN110275702A CN 110275702 A CN110275702 A CN 110275702A CN 201910565108 A CN201910565108 A CN 201910565108A CN 110275702 A CN110275702 A CN 110275702A
- Authority
- CN
- China
- Prior art keywords
- format
- formatter
- layer data
- java
- formatting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开一种Java Web项目的表现层数据格式化系统,涉及数据处理技术领域;本发明基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据Java Bean的格式化信息,注册模块注册格式化器,处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据Java Bean进行格式化,利用本发明避免了在SQL语句层面进行数据格式化操作,简化了SQL语句,同时可以有效地避免在切换不同类型数据库时,可能引起的SQL语法和函数不兼容等问题。提高了Java Web项目的传输效率和稳定性。
Description
技术领域
本发明公开一种Java Web项目的表现层数据格式化系统,涉及数据处理技术领域。
背景技术
Java Web项目通常可分为表现层、交互层、业务逻辑层和数据库层。通常为了表现层数据表现更直观和数据库层数据存储更方便,数据在传输过程中需要进行格式化。比如一些时间格式和数字格式的数据,通常时间需要格式化为yyyy-MM-dd或者yyyy年MM月dd日的形式,数字格式需要增加千位分隔符,注意保留小数点的位数等等。现有技术利用SQL语句进行表现层数据格式化,在切换不同类型数据库时,容易引起SQL语法和函数不兼容等问题。同时由于增加了数据格式化SQL语句,增加了SQL语句的复杂程度,降低了SQL语句的可读性,增加了出错几率。
本发明公开了一种Java Web项目的表现层数据格式化系统,基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据Java Bean的格式化信息,注册模块注册格式化器,处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据JavaBean进行格式化,利用本发明避免了在SQL语句层面进行数据格式化操作,简化了SQL语句,同时可以有效地避免在切换不同类型数据库时,可能引起的SQL语法和函数不兼容等问题。提高了Java Web项目的传输效率和稳定性。
发明内容
本发明针对现有技术的问题,提供一种Java Web项目的表现层数据格式化系统,具有通用性强、实施简便等特点,具有广阔的应用前景。
本发明提出的具体方案是:
一种Java Web项目的表现层数据格式化系统,基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,
扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据JavaBean的格式化信息,
注册模块注册格式化器,
处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据Java Bean进行格式化。
所述的系统中扫描模块利用格式化注解定义了格式化类型和格式化样式,对JavaBean的属性添加格式化注解,表示所述的Java Bean需要进行格式化操作。
所述的系统中扫描模块包括格式化注解扫描器,利用格式化注解扫描器对属性含有格式化注解的Java Bean进行扫描。
所述的系统中注册模块利用格式化器类型注解定义了格式化类型和格式化器优先级,对格式化器添加格式化器类型注解。
所述的系统中注册模块包括格式化器注册器,格式化器注册器保存向Spring容器注册的格式化器,并对同一格式化类型的格式化器,按照格式化器优先级进行排序。
所述的系统中处理模块包括格式化接口,定义执行格式化的函数,实现统一格式化操作。
所述的系统中处理模块利用格式化抽象类定义无参构造函数,实现注册模块中格式化器初始化时进行注册的功能。
所述的系统中处理模块包括查询操作拦截器,拦截Mybatis查询操作,处理模块根据查询操作拦截器拦截的查询结果,判断Java Bean是否进行格式化操作。
所述的系统中处理模块利用格式化模板类处理查询操作拦截器拦截的查询结果,若拦截的查询结果中Java Bean的属性添加了格式化注解,则利用Java反射机制获取对应的格式化注解,进而获取格式化注解定义的格式化类型和格式化样式,依据格式化类型从格式化器注册器中获取对应格式化类型的优先级最高的格式化器,利用格式化器对JavaBean的属性值进行格式化,若拦截的查询结果中Java Bean的属性没有添加格式化注解,则不进行格式化操作。
一种Java Web项目的表现层数据格式化方法,利用所述的一种Java Web项目的表现层数据格式化系统,对表现层数据进行格式化。
本发明的有益之处是:
本发明提供一种Java Web项目的表现层数据格式化系统,基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据Java Bean的格式化信息,注册模块注册格式化器,处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据Java Bean进行格式化;利用本发明方法避免了在SQL语句层面进行数据格式化操作,简化了SQL语句,同时可以有效地避免在切换不同类型数据库时,可能引起的SQL语法和函数不兼容等问题。提高了Java Web项目的传输效率和稳定性。
附图说明
图1是本发明系统各模块关系框图;
图2是本发明方法流程示意图。
具体实施方式
本发明提供一种Java Web项目的表现层数据格式化系统,基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,
扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据JavaBean的格式化信息,
注册模块注册格式化器,
处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据Java Bean进行格式化。
同时提供与上述系统相对应的一种Java Web项目的表现层数据格式化方法。
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
利用本发明系统进行Java Web项目的表现层数据格式化时,是基于Spring和Mybatis实现的,其中扫描模块用于扫描需要格式化的Java Bean,注册模块用于注册格式化器,处理模块用于表现层数据格式化,
扫描模块可利用自定义的Java注解,即格式化注解@Convert定义格式化类型type和格式化样式format,作用于Java Bean的属性,而Java Bean的属性添加了所述格式化注解@Convert,表示此Java Bean属性需要进行格式化操作,属性含有@Convert注解的JavaBean也即是需要格式化的类;扫描模块也可利用其它方式对Java Bean属性进行定义,表示Java Bean属性需要进行格式化操作,
注册模块可利用自定义的Java注解,即格式化器类型注解@ConverterType定义格式化类型type和格式化器优先级priority,作用于格式化器,格式化器是指添加了格式化器类型注解@ConverterType的Java类,负责执行具体的数据格式化操作,注册模块保存向Spring容器注册的格式化器,并为同一格式化类型的格式化器,按照格式化器类型注解定义的格式化器优先级priority进行排序,
处理模块可通过格式化接口Converter定义执行格式化的函数doConvert,起到统一格式化操作的目的,而处理模块中可利用格式化抽象类BaseConverter实现格式化接口Converter,定义无参构造函数,实现格式化器初始化时在注册模块中注册格式化器的功能,这里格式化器相当于是格式化抽象类BaseConverter的子类,可实现doConvert方法,并且添加了格式化器类型注解@ConverterType,被定义格式化类型type和格式化器优先级priority,
本发明系统应用时,扫描模块扫描需要格式化的表现层数据Java Bean,发现JavaBean属性添加了所述格式化注解@Convert,需要进行格式化操作,根据@Convert提供的格式化类型type和格式化样式format,依据格式化类型type从注册模块中获取对应格式化类型的优先级最高的格式化器,格式化器对属性值进行格式化,并利用java反射机制为属性赋格式化后的值。
在另一实施例中,基于第一个实施过程,扫描模块可包括格式化注解扫描器ConvertAnnotationScanner,利用格式化注解扫描器扫描需要格式化的类,即属性含有@Convert注解的Java Bean,
而注册模块中包括格式化器注册器ConverterRegister,格式化器注册器ConverterRegister,负责保存向Spring容器注册的格式化器,并为同一格式化类型的格式化器,按照格式化器类型注解定义的格式化器优先级priority进行排序,
处理模块中格式化抽象类BaseConverter相应实现格式化器初始化时在格式化器注册器中注册格式化器的功能,处理模块还可设置查询操作拦截器YdtSqlSessionTemplate和格式化模板类ConvertTemplate,查询操作拦截器是Mybatis的SqlSessionTemplate类的子类,通过继承SqlSessionTemplate类,重写selectOne和selectList方法,实现拦截Mybatis查询操作的功能,并将查询结果交由格式化模板类ConvertTemplate进行处理,
本发明系统应用时,处理模块的查询操作拦截器拦截Mybatis对表现层数据查询操作,并将查询结果交由格式化模板类ConvertTemplate,格式化模板类负责处理YdtSqlSessionTemplate拦截的查询结果,若结果中的Java Bean含有需要格式化的属性,则利用Java反射机制获取属性对应的格式化注解@Convert,进而获取格式化注解定义的格式化类型type和格式化样式format,然后依据格式化类型type从格式化器注册器ConverterRegister中获取对应格式化类型的优先级最高的格式化器,格式化器对属性值进行格式化,并利用java反射机制为属性赋格式化后的值;若结果中的Java Bean不含有需要格式化的属性,则不进行格式化操作。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (10)
1.一种Java Web项目的表现层数据格式化系统,其特征是
基于Spring和Mybatis,包括扫描模块、注册模块和处理模块,
扫描模块扫描需要格式化的表现层数据Java Bean,获取表现层数据Java Bean的格式化信息,
注册模块注册格式化器,
处理模块获取表现层数据Java Bean的格式化信息,利用注册模块提供的格式化器对表现层数据Java Bean进行格式化。
2.根据权利要求1所述的系统,其特征是扫描模块利用格式化注解定义了格式化类型和格式化样式,对Java Bean的属性添加格式化注解,表示所述的Java Bean需要进行格式化操作。
3.根据权利要求2所述的系统,其特征是扫描模块包括格式化注解扫描器,利用格式化注解扫描器对属性含有格式化注解的Java Bean进行扫描。
4.根据权利要求1-3任一所述的系统,其特征是注册模块利用格式化器类型注解定义了格式化类型和格式化器优先级,对格式化器添加格式化器类型注解。
5.根据权利要求4所述的系统,其特征是注册模块包括格式化器注册器,格式化器注册器保存向Spring容器注册的格式化器,并对同一格式化类型的格式化器,按照格式化器优先级进行排序。
6.根据权利要求1或5所述的系统,其特征是处理模块包括格式化接口,定义执行格式化的函数,实现统一格式化操作。
7.根据权利要求6所述的系统,其特征是处理模块利用格式化抽象类定义无参构造函数,实现注册模块中格式化器初始化时进行注册的功能。
8.根据权利要求7所述的系统,其特征是处理模块包括查询操作拦截器,拦截Mybatis查询操作,处理模块根据查询操作拦截器拦截的查询结果,判断Java Bean是否进行格式化操作。
9.根据权利要求8所述的系统,其特征是处理模块利用格式化模板类处理查询操作拦截器拦截的查询结果,若拦截的查询结果中Java Bean的属性添加了格式化注解,则利用Java反射机制获取对应的格式化注解,进而获取格式化注解定义的格式化类型和格式化样式,依据格式化类型从格式化器注册器中获取对应格式化类型的优先级最高的格式化器,利用格式化器对Java Bean的属性值进行格式化,若拦截的查询结果中Java Bean的属性没有添加格式化注解,则不进行格式化操作。
10.一种Java Web项目的表现层数据格式化方法,其特征是利用权利要求1-9任一所述的一种Java Web项目的表现层数据格式化系统,对表现层数据进行格式化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910565108.8A CN110275702B (zh) | 2019-06-27 | 2019-06-27 | 一种Java Web项目的表现层数据格式化系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910565108.8A CN110275702B (zh) | 2019-06-27 | 2019-06-27 | 一种Java Web项目的表现层数据格式化系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275702A true CN110275702A (zh) | 2019-09-24 |
CN110275702B CN110275702B (zh) | 2022-07-26 |
Family
ID=67963611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910565108.8A Active CN110275702B (zh) | 2019-06-27 | 2019-06-27 | 一种Java Web项目的表现层数据格式化系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275702B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764723A (zh) * | 2021-01-21 | 2021-05-07 | 奇秦科技(北京)股份有限公司 | 一种基于Spring无侵入修改标准产品业务系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249792A1 (en) * | 2003-06-04 | 2004-12-09 | Salman Halim | Automated query file conversions upon switching database-access applications |
CN109388402A (zh) * | 2018-09-26 | 2019-02-26 | 杭州米加科技股份有限公司 | 基于Android平台的轻量级Josn格式解析工具 |
CN109471619A (zh) * | 2018-11-20 | 2019-03-15 | 北京千丁互联科技有限公司 | Mybatis代码生成方法、装置及计算机终端 |
-
2019
- 2019-06-27 CN CN201910565108.8A patent/CN110275702B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040249792A1 (en) * | 2003-06-04 | 2004-12-09 | Salman Halim | Automated query file conversions upon switching database-access applications |
CN109388402A (zh) * | 2018-09-26 | 2019-02-26 | 杭州米加科技股份有限公司 | 基于Android平台的轻量级Josn格式解析工具 |
CN109471619A (zh) * | 2018-11-20 | 2019-03-15 | 北京千丁互联科技有限公司 | Mybatis代码生成方法、装置及计算机终端 |
Non-Patent Citations (1)
Title |
---|
扶摇的星河: "java springMVC 字符串转换时间的自定义转换器", 《HTTPS://BLOG.CSDN.NET/JIEMAIO/ARTICLE/DETAILS/89889680》, 6 May 2019 (2019-05-06), pages 1 - 2 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112764723A (zh) * | 2021-01-21 | 2021-05-07 | 奇秦科技(北京)股份有限公司 | 一种基于Spring无侵入修改标准产品业务系统和方法 |
CN112764723B (zh) * | 2021-01-21 | 2021-09-17 | 奇秦科技(北京)股份有限公司 | 一种基于Spring无侵入修改标准产品业务系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110275702B (zh) | 2022-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110837492B (zh) | 一种多源数据统一sql提供数据服务的方法 | |
WO2016123920A1 (zh) | 支持多类型数据库操作的集成接口的实现方法及系统 | |
US7526503B2 (en) | Interactive schema translation with instance-level mapping | |
US8140558B2 (en) | Generating structured query language/extensible markup language (SQL/XML) statements | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
CN103593456B (zh) | 表单自定义设计方法及装置 | |
US20070073675A1 (en) | Database query translation | |
EP2207104A2 (en) | System and method for transforming a UML model into an OWL representation | |
CN109902117A (zh) | 业务系统分析方法和装置 | |
CN111125440B (zh) | 一种基于Monad的持久层复合条件查询方法与存储介质 | |
CN108038213A (zh) | 一种数据处理的方法、客户端、服务器及系统 | |
CN109298954B (zh) | 一种智能调用Dubbo远程服务的方法及装置 | |
US10997131B1 (en) | Using a member attribute to perform a database operation on a computing device | |
CN101043379A (zh) | 网络管理装置与网络管理方法 | |
CN110990011A (zh) | 一种自动化接口的数据请求方法 | |
CN110275702A (zh) | 一种Java Web项目的表现层数据格式化系统 | |
CN117349368A (zh) | 基于Flink的跨库数据实时同步任务管理系统及方法 | |
US6980995B2 (en) | Method, computer program product, and system for automatically generating a hierarchial database schema report to facilitate writing application code for accessing hierarchial databases | |
Middelburg | VVSL: A language for structured VDM specifications | |
CN111198711B (zh) | 基于MongoDB的Collection版本控制方法及系统 | |
US8090658B2 (en) | System and method of member unique names | |
CN114036158B (zh) | 一种Elasticsearch与MySQL的联合查询方法和装置 | |
CN108845793B (zh) | 一种orm设计方法及装置 | |
CN111782195A (zh) | 一种基于在请求参数上添加注解拼接成sql的查询方法 | |
CN114861229B (zh) | 一种Hive动态脱敏方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |