JEECG工程详解
- src
- 包
- DBConfig.properties
- hibernate的优势
- `validationQuery.sql`
- 文件在工程中的位置
- redis.properties
- 文件在工程中的位置
- SwaggerConfig
- 文件在工程中的位置
- InterfaceEnum
- 文件在工程中的位置
- web.xml
- 错误信息:“cvc-id.3: A field of identity constraint 'web-common-filter-name-uniqueness' matched element 'web-app', but this element does not have a simple type”.
- web.xml文件中的标签
- ``
- ``
- 加载servlet的过程
- 文件在工程中的位置
- cxf-servlet.xml文件
- JEECG工程无法启动,错误:Context initialization failed:Configuration problem:Failed to import bean definitions from URL location [classpath:cxf-servlet.xml]
- .wsdl文件
- 文件在工程中的位置
- 代码生成
- 成功标志
- JEECG生成的工程代码的结构
- controller
- entity
- service
- serviceimpl
JEECG工程本身就是一个springmvc的工程,
自认。
src
包
在上图中,白包是没有class文件,即没有.java文件。在包内添加.java文件后,包变为正常的棕色,如下图所示。
DBConfig.properties
全称database configuration,是负责存储连接数据库信息的.properties配置文件,其中存储jdbc连接数据库时需要用到的信息。如下图所示。
hibernate的优势
- 将对数据库的操作转换为对Java对象的操作,从而简化开发。通过修改一个“持久化”对象的属性从而修改数据库表中对应的记录数据。
- 提供线程和进程两个级别的缓存提升应用程序性能。
- 有丰富的映射方式将Java对象之间的关系转换为数据库表之间的关系。
- 屏蔽不同数据库实现之间的差异。在Hibernate中只需要通过“方言”的形式指定当前使用的数据库,就可以根据底层数据库的实际情况生成适合的SQL语句。
- 非侵入式:Hibernate不要求持久化类实现任何接口或继承任何类,POJO即可。
validationQuery.sql
文件在工程中的位置
dbcongfig.properties文件直接创建在src目录下,与src中各包同级。
redis.properties
是是开发接口时用来缓存token时使用的配置文件。Json web token (JWT)机制通过基于token的鉴权机制,来保证接口的使用安全。JWT验证用的token采用redis进行缓存。
文件在工程中的位置
redis.properties文件,与dbcongfig.properties文件位置相同,都直接创建在src目录下,与src中各包同级。
SwaggerConfig
是用来测试接口的swagger工具的配置文件。
文件在工程中的位置
在org.jeecgframework.core.swagger包下。
InterfaceEnum
类中的构造方法为
private InterfaceEnum(String code, String name, String url, String method, Integer sort)
各参数的含义如下
文件在工程中的位置
在src的org.jeecgframework.web.system.enums
包下,如下图所示。
web.xml
通过web.xml文件对servlet进行配置。
错误信息:“cvc-id.3: A field of identity constraint ‘web-common-filter-name-uniqueness’ matched element ‘web-app’, but this element does not have a simple type”.
错误如下图所示。原因是下图红框中xsi:schemaLocation
中的java是小写
改为大写JAVA
后,错误提示消失,如下图所示。看有的博客说,两个路径要保持一致,所以第二个路径中的JAVA也改为了大写。
web.xml文件中的标签
<servlet>
<servlet-name>
:为servlet制定一个名称,该名称在整个应用中必须是惟一的。<servlet-class>
:用来指定servlet的完全限定的名称。<description>
:为Servlet指定一个文本描述。<display-name>
:为Servlet提供一个对外显示的名字。<load-on-startup>
:标签内的数值表示由此servlet被Web容器载入内存的顺序,小的会被先加载。
<servlet-mapping>
用于给<servlet>
指定路径<servlet-name>
:Servlet的名字,与元素中声明的名字一致。<url-pattern>
:指定相对于Servlet的URL的路径(该路径相对于web应用程序上下文的根路径),将URL映射到Servlet,即该Servlet处理的URL。
加载servlet的过程
容器的Context对象对请求路径(URL)做出处理,去掉请求URL的上下文路径后,按路径映射规则和Servlet映射路径()做匹配,如果匹配成功,则调用这个Servlet处理请求。
文件在工程中的位置
在——工程的一级目录——与src同级的——webRoot文件夹下的WEB-INF包下。
cxf-servlet.xml文件
JEECG工程无法启动,错误:Context initialization failed:Configuration problem:Failed to import bean definitions from URL location [classpath:cxf-servlet.xml]
如下图所示。
原因是因为在META-INF文件夹下,没有文件,如下所示。
所以导致下面两条语句导入的文件失败,从而报错。
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
解决措施:将上面两条语句注释掉,即可
.wsdl文件
文件在工程中的位置
在——工程的一级目录——与src同级的——webRoot文件夹下的wsdl包下。
代码生成
此部分请看看另一篇博客。
成功标志
- 生成代码成功后,控制台会提示如下信息。
- 原对话框中也会有相应提示,如下图红框中的提示。
JEECG生成的工程代码的结构
代码生成的文件会分为四个包,分别为Controller、entity、service和serviceimpl
controller
主要负责业务逻辑。
entity
主要负责工程中各变量与数据库中对应数据间的匹配,包含用来对应数据库中各数据项的变量,以及这些变量的设值和取值方法。
service
其实质是一个接口interfacepublic interface PaperfileServiceI extends CommonService
,其中包含多个抽象方法,继承自CommonService。在代码需要使用对应功能时,使用该接口类。此外,如果service中没有自己要用的功能,则直接在service接口中添加需要的抽象方法,并在service的接口实现类中实现其方法。
serviceimpl
是实现了上面service接口的接口实现类,同时继承自CommonServiceImpl public class PaperfileServiceImpl extends CommonServiceImpl implements PaperfileServiceI
。自己在service接口中新建的抽象方法的具体实现,在本类中实现其接口方法。