1.4.太极平台:15分钟搭建初始后台系统

使用奇点太极平台,能快速搭建后台管理系统。基本的框架,拥有用户管理、角色权限管理、登录日志等基本功能。启动运行后,效果如下图所示。

下面详述创建流程。首先当然是要把IDEA编辑器、Java环境配置好,这个参见上个章节1.2,不再累述。

1、创建项目

1、打开IDEA编辑器,创建新项目,如下图所示。选择Maven方式创建,勾上“Create from archetype”,之后选中:org.apache.maven.archetypes:maven-archetype-webapp。

2、点击下一步,输入GroupId、ArtifactId、版本。如下图所示。

GroupId一般采用企业域名的反向顺序编写,ArtifactId一般就是项目的名称,版本号就从1.0开始。SNAPSHOT表示快照版本,可以通俗理解就是debug版本,不是正式发布的release版本。

3、选择配置Maven信息。Maven的配置,在上个章节1.2中有说明,不再累述。如果环境配置好,这里会默认选中我们自定义的Maven配置文件。如下图所示。

4、下一步,设置项目名称,以及要保存的本地路径。如下图所示。

5、点击结束。IDEA开始创建项目文件,最终创立一个初始的项目。如果IDEA右下角弹出提示,如下图所示,点击允许自动导入。这样Maven会自动导入必须的库文件。

2、配置项目

IDEA已经成功创建了一个空的项目。现在进行一些基础配置,以及引入太极平台框架库文件。

1)配置Tomcat

点击IDEA工具栏上的Add Configuration,如下图所示。

在弹出的界面,点击加号“+”,弹出下拉菜单,选择Tomcat Server,再选择local。

如果没有Tomcat选项,则还需要先配置Tomcat。如何配置,参见上一章节1.2。

弹出界面,如下图所示。首先,修复警告。点击右下角的“Fix”按钮。

在弹出的菜单中,选择QiDianERP:war exploded。意思创建项目的发布包目录,以及项目的上下文目录。不用具体去理解,按照提示去创建即可。以后熟悉了,自然知道用处。

创建成功后,如下图所示。已经指定了服务启动的发布目录。

回到server标签,配置Tomcat的端口。

1)配置端口。HTTP端口,就是运行后,浏览器地址栏上的端口;JMX端口,跟着修改。每个项目最好配置成端口不重复,这样就可以同时调试运行多个项目,否则端口号一样,Tomcat只能同时启动1个项目。

2)VM options配置为:-Dfile.encoding=UTF-8,是为了解决Tomcat在IDEA控制台输出乱码。

3)Name配置。修改为Tomcat加上端口号,是为了方便在IDEA工具栏上,直接一目了然的看到当前项目的端口号。

2)调试运行

Tomcat配置完毕后,可以运行起来看看效果。点击工具栏上的运行或调试按钮。如下图所示。

IDEA编辑器开始执行编译,在下面的控制台有输出信息。之后会自动弹出浏览器页面,如下图所示。成功输出了hello world!表示成功运行。端口号是8087。

3)引入太极平台框架库

空项目已创建成功,Tomcat也成功配置,可调试运行。现在到了关键部分,引入太极平台框架库文件。

双击pom.xml文件,打开,如下图所示。

1)修改properties节点

这里修改JDK的版本,目前我们项目中都使用Java11,所有这里都修改为了11。如果自己项目使用Java7,Java8,则使用1.7,1.8即可。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

2)修改dependencies节点

初始创建的项目,依赖库只有junit一个,用下面的代码,替换整个<dependencies>节点。加入各个引入库文件。

注意最后面的2个引入库,就是奇点太极平台框架的库文件。其他都是各种通用的库文件。

注意:在1.34版本之前,框架的依赖包有3个;从1.34版本开始,框架依赖库只需要2个。为了保持版本同步,将原来QiDianWebCommon包中的功能文件,都整合到QiDianAdminCommon里面去了,这样2个Admin包的版本号始终保持一致。建议大家都使用最新的版本号,拥有更多新功能。

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>

        <!--系统必备:Tomcat、taglibs、mysql-->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>9.0.16</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jdbc -->
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jdbc</artifactId>
            <version>9.0.16</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-impl -->
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-impl</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.taglibs/taglibs-standard-spec -->
        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-spec</artifactId>
            <version>1.2.5</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

        <!--json字符串处理-->
        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.55</version>
        </dependency>

        <!--文件上传处理-->
        <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
        </dependency>

        <!--Excel导入导出相关-->
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.0.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>1.1.2-beta4</version>
        </dependency>


        <!--奇点太极平台库-->
        <dependency>
            <groupId>tech.qidian.dev</groupId>
            <artifactId>QiDianAdminCommon</artifactId>
            <version>1.34</version>
        </dependency>
        <dependency>
            <groupId>tech.qidian.dev</groupId>
            <artifactId>QiDianAdminTemplate</artifactId>
            <version>1.34</version>
            <type>war</type>
        </dependency>

    </dependencies>

奇点太极平台库的最新版本,可以到阿里云的云效私有仓库中去查找。如下图所示,进入云效,点击私有仓库。列出了仓库的RELEASE和SNAPSHOT这2个策略。点击仓库名称,下面的列表就列出了该仓库下的所有库文件,逐步展开,就可以看到版本号。

建议都使用最新的release版本,以便使用最新的功能特性。特殊情况下,可使用最新版的SNAPSHOT版本。

3)修改build节点

在maven-war-plugin中加入configuration配置节点,代码如下。是为了以后采用Maven方式打包时,能够将编译后的java文件,全部打包为一个jar文件,方便发布。否则,java源文件仍然会以目录的结构,一个个文件存在。

                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                    <!--这里增加了配置项,采用Maven打包时,可以将java目录下的class文件,全部打包为一个jar文件-->
                    <configuration>
                        <attachClasses>true</attachClasses>
                        <archiveClasses>true</archiveClasses>
                    </configuration>
                </plugin>

最终的完整build节点如下。

    <build>
        <finalName>QiDianERP</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                    <!--这里增加了配置项,采用Maven打包时,可以将java目录下的class文件,全部打包为一个jar文件-->
                    <configuration>
                        <attachClasses>true</attachClasses>
                        <archiveClasses>true</archiveClasses>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

4)配置web.xml文件

在webapp的WEB-INF目录中,双击web.xml文件打开,查看其中的内容。如下图所示,如果web-app节点没有命名空间,则需要进行添加。修改后的web.xml文件,见下面的代码。如果不加入命名空间,会出现运行时无法解析jsp中的标签。效果见本节最后面的常见问题。

修改后的web.xml,添加了命名空间。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
  <display-name>QiDianERP</display-name>
</web-app>

3、配置数据库

后台管理系统离不开数据库,太极平台的功能模块,都是在数据库中进行配置。每个QiDianAdminCommon库文件版本,都有相应版本的数据库表结构。因为不同版本的功能不一样,导致数据库结构也不一样,所以版本必须严格对应。

1)获取数据库

每个版本的数据库,太极平台都有相应版本的SQL导出文件,可以在自己的MySQL数据库中执行恢复,实现创建数据库表结构和配置数据。

数据库的获取,有多种方式:

a)联系官方获取。目前可加微信:dalu2048,加QQ:1801099979,获取最新版本数据库包文件。

b)官网上下载。尚未实现。

c)云端数据库在线自助开通。尚未实现。

d)云端数据库官方开通。可联系官方,创建一个云端数据库(目前使用的是阿里云的RDS云数据库实例)。通过地址、账号、密码,即可连接使用。开通的数据库,已自动创建了最新版本太极平台所需的数据库表结构与数据。

2)配置数据库连接

在webapp的WEB-INF目录下,新建classes目录,再新建dbconn.properties文件。如下图所示。

双击打开dbconn.properties文件,拷贝下面的配置文件进去。并进行配置项修改。

#
# *************************************************************
# 文件:dbconn.properties  模块:QiDianERP  项目:QiDianERP
# 当前修改时间:2019年07月24日 15:59:26
# 上次修改时间:2019年07月24日 15:59:21
# 作者:李露
# Copyright (c) 2018-2019  苏州奇点智能科技有限公司
# *************************************************************
#

dbUrl=jdbc:mysql://dev.mysql.qidian.tech:3306/qidianerp_dev?useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true
dbUsername=qidianerp_dev
dbPassword=dpeo^$5dfSDt4
#isDebug=1或者0。表示是否开始调试模式。如果开启,则会输出每次执行的SQL语句。以system.out方式输出。
dbDebug=1

#连接池设置。根据实际在线量进行设置,可以在管理后台查看当前的连接池实时状态,再进行调整。
#初始化连接数量。根据实际访问量进行设置。开发模式设置为1足以。
initSize=1
#最大活动连接数。超过了连接数,新连接就要等待。
maxActive=20
#最小空闲连接数
minIdle=1
#最大空闲连接数
maxIdle=4

a)修改数据库连接信息。填写自己的数据库连接信息。

每个新进员工,都会分配一个自己的测试数据库,方便熟悉系统框架。同时分配一个数据库账号,可以管理各个有权限的数据库。

b)修改调试输出信息。

配置项中的dbDebug,设置为1,则系统运行时,会在IDEA的控制台,输出所有调用的SQL语句和参数,方便调试查看。特别是系统出现异常,可以通过SQL语句排查问题。如下图所示,调试窗口输出SQL日志。

注意:系统正式发布后,务必将dbDebug设置为0,停用SQL语句输出,否则Tomcat日志目录下,会出现大量的日志记录。

c)修改连接池信息。

太极平台采用连接池的方式,进行数据库连接,提高IO性能。连接池有4个配置项,根据自己项目的数据库访问量进行设置。

一般在调试模式下,初始化连接数量、最小空闲连接数量都为1即可。

小技巧

可以在后台系统功能:连接池状态,中随时查看数据库连接池信息。

某个系统的数据库连接池,如下图所示。

系统已执行了5561次请求连接,系统并不繁忙,实时size为1,busy为0,waitCount也为0。

4、调试运行

所有配置项已完毕,并引入了奇点太极平台库,再重新调试运行看看。

1)删除默认的首页index.jsp文件。

由于奇点太极平台中自带有首页文件,新建项目中的index.jsp会覆盖库中的同名文件。除非需要重新编写index.jsp,否则就删除自带的index.jsp。

2)重启运行

点击工具栏上的调试按钮。

弹出界面,选择重启。

IDEA进行编译,并重启Tomcat,之后会在浏览器上弹出网页。如下图所示。显示登录界面,以及系统名称。说明太极平台框架已成功运行,且数据库成功连接。

输入默认的账号:admin,密码:qidian888,成功登录后,进入主界面。如下图所示。

新创立的后台系统,并没有首页效果。首页内容,需要自己进行开发。这也是为了保证系统自由度和灵活性,因为基本上每个系统的首页都是不一样的,所以没有必要进行统一。

5、常见问题

如果登录界面,是下面的效果。

在浏览器调试界面,出现资源加载都是404,查看资源路径,路径中的jsp标签${basePath}都没有解析。

具体原因,则是web.xml文件,没有添加命名空间。解决方法,见本篇文章中的配置web.xml章节。

发布了89 篇原创文章 · 获赞 71 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_42127613/article/details/97118230