# vue工程项目初始化操作指南
<ol>
<li>强烈推荐在VM中完成如下实验，推荐使用virtualbox 
<li>如果是机房的电脑上实验，先关闭ReportServer服务,如下：
![机房要处理的操作]( ./doc/images/机房要处理的操作_1.jpg "机房要处理的操作" )
<li>
<li>配置调试用chrome浏览器
<li>在c盘建一个名为chrome的文件夹
<li>右键点桌面chrome图标，打开属性，在对话框的"目标(T)"处，复制如下命令替换原有参数后点确定。

![chrome_nosafe]( ./doc/images/chrome_nosafe.png "chrome_nosafe")

~~~
 "C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-site-isolation-trials --disable-web-security --user-data-dir=c:\chrome
~~~

<li>操作完后关闭浏览器，在重新打开
<li>安装wampserver。
<li>安装idea。
<li>安装node.js。
<li>进入命令行。
<li>进入c盘根目录： cd/
<li>在c盘根目录创建项目文件夹：md exam_app
<li>进入项目文件夹：cd exam_app
<li>配置镜像地址：npm config set registry https://registry.npmmirror.com
<li>安装vue-cli：npm install -g @vue/cli
<li>创建vue项目脚手架：vue create app_vue
<li>进入vue项目文件夹：cd app_vue
<li>安装router包：npm install vue-router@next
<li>安装axios包：npm install axios
<li>启动vue项目：npm run serve
<li>启动idea，打开刚才创建的app_vue项目
<li>安装vue的插件

![plugins_vue]( ./doc/images/plugins_vue.png  "plugins_vue")
<li>配置vue

~~~json
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
    transpileDependencies: true
})
module.exports={
    devServer:{
        port:586xx,
        allowedHosts:"all",
        proxy: {
            '/examServer': {
                target: "http://10.128.128.xx:8022",
                secure: false,
                changeOrigin: true,
                pathRewrite: {
                    '^/examServer': ''
                }
            },
            '/springbootServer': {
                target: "http://localhost:583xx",
                secure: false,
                changeOrigin: true,
                pathRewrite: {
                    '^/springbootServer': ''
                }
            },
        }

    }
}
~~~

<li>每次修改了vue配置文件后，要重启vue
<li>准备好老师发送的考试服务器客户端，文件名为e_yyyymmdd.jar ，复制到c盘根下
<li>进入命令行
<li>进入c盘根目录:  `cd /`
<li>运行考试服务器：`java -jar e_yyyymmdd.jar`（原则上此文件的名称与考次号一致）
<li>考试服务器窗口在运行过程中如果出现问题，请用ctrl+c中止程序。vue-cli窗口也是类似，不要直接关窗口。
<li>如果出现

![java端口冲突]( ./doc/images/java端口冲突.png "java端口冲突")
，请用`neststat -ano`找到8099端口对应的PID，后杀掉此进程解决。
<li>配置router/index.js
</ol>


#  springboot工程项目初始化操作指南
<ol>
<li>新建工程项目

![springboot1](  ./doc/images/springboot_1.png )
<br><br>
<li>设置项目参数

![springboot2](.\doc\images\springboot_2.png)
<br><br>
<li>设置项目参数

![springboot3](./doc/images/springboot_3.png)

<br><br>
<li>设置项目参数

![](./doc/images/springboot_4.png)
<br><br>
<li>设置编译参数

![springboot5](./doc/images/springboot_5.png)

<br><br>
<li>设置项目参数

![](./doc/images/springboot_7.png)
<br><br>
<li>设置项目参数

![springboot8](./doc/images/springboot_8.png)
<br><br>
<li>设置pom参数

![springboot6](./doc/images/springboot_6.png)

~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.luowei</groupId>
    <artifactId>app_sb</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>app_sb</name>
    <description>Demo project for Spring Boot</description>
    <url/>
    <licenses>
        <license/>
    </licenses>
    <developers>
        <developer/>
    </developers>
    <scm>
        <connection/>
        <developerConnection/>
        <tag/>
        <url/>
    </scm>
    <properties>
        <java.version>8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.1</version>
        </dependency>


        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.0.31</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
~~~



<li>设置项目参数

![]( ./doc/images/springboot_9.png )

<li>maven配置

~~~xml
            <?xml version="1.0" encoding="UTF-8"?>
        <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
            <mirrors>
                <mirror>
                    <id>alimaven</id>
                    <name>aliyun maven</name>
                    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                    <mirrorOf>central</mirrorOf>
                </mirror>
                <mirror>
                    <id>uk</id>
                    <mirrorOf>central</mirrorOf>
                    <name>Human Readable Name for this Mirror.</name>
                    <url>http://uk.maven.org/maven2/</url>
                </mirror>
                <mirror>
                    <id>CN</id>
                    <name>OSChina Central</name>
                    <url>http://maven.oschina.net/content/groups/public/</url>
                    <mirrorOf>central</mirrorOf>
                </mirror>
                <mirror>
                    <id>nexus</id>
                    <name>internal nexus repository</name>
                    <url>http://repo.maven.apache.org/maven2</url>
                    <mirrorOf>central</mirrorOf>
                </mirror>
            </mirrors>
        </settings>
~~~
<li style="color: red">配置完后刷新maven
<li>配置application.yml

~~~yml
server:
  port: 583xx

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password:
    url: jdbc:mysql://localhost:3306/exam_xxx?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false

mybatis:
  mapper-locations: classpath:mapper/*Mapper.xml
  type-aliases-package: com.luowei.exam
  configuration:
    #log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
~~~


<li>配置数据库与数据表（部分）

~~~sql
drop database exam_xxx;
create database exam_xxx;
use exam_xxx;
drop table person_base_info_881;
create table person_base_info_881(id varchar(18),name varchar(20),gender varchar(2),chronic_disease varchar(20),password varchar(20),address varchar(40),photo varchar(40),create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('admin','罗维','01','123','c01,c02','510100','admin','-967796571','-967796571');
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('510103194610220234','洪七公','01','123','c01,c02','510100','510103194610220234','-967796571','-967796571');
insert into person_base_info_881(id,name,gender,password,chronic_disease,address,photo,create_time,update_time)values('510103194805030875','郭靖','02','123','c01,c03','500000','510103194610220234','-927796571','-927796571');

drop table person_health_info_881;
create table person_health_info_881(uuid varchar(50),id varchar(18),sbp int,dbp int,create_time int,update_time int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_health_info_881(uuid,id,sbp,dbp,create_time,update_time)values('1234567890','510103194610220234','110','80','1758399909','1758399909');
insert into person_health_info_881(uuid,id,sbp,dbp,create_time,update_time)values('1234567891','510103194610220234','120','85','1758399909','1758399909');

drop table person_base_info_881_1;
create table person_base_info_881_1(id varchar(18),name varchar(20),sbp int,dbp int)ENGINE=MyISAM DEFAULT CHARSET=utf8;
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103234','罗维','114','70');
insert into person_base_info_881_1(id,name,sbp,dbp)values('510103239','洪七公','134','89');
~~~

<li>mapper.xml

~~~xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--实际开发时，namespace要按实际的包名修改-->
<mapper namespace="com.luowei.app_sb.mapper.PersonBaseInfoMapper">

</mapper>

~~~

<li>如果调试时出现报错“java.lang.IllegalArgumentException: Source must not be null”，是你的代码有问题插入了null导致的，删除数据后可解决。

![]( http://125.64.9.222:8022/stuff/image/%E6%95%B0%E6%8D%AE%E8%A1%A8%E5%AD%97%E6%AE%B5%E5%80%BC%E4%B8%BA%E7%A9%BA%E7%9A%84%E5%A4%84%E7%90%86_1.png)
</ol>