半暖商城第一季--SpringMVC+Mybatis本地开发环境搭建示例(三)

1. 前言

在前一个教程中我们完成了对腾讯云服务器的配置。本节教程中我们将探讨如何使用SpringMVC+Mybatis来搭建一个本地开发环境,该开发环境主要用于后台管理系统和应用程序接口的开发。

2. 环境介绍

在开始搭建开发环境之前,我们的本地需要配置有如下程序:

  • IntelliJ IDEA
  • JDK 1.7.0_80

请自行安装搭建。

3. 环境搭建

3.1 使用IntelliJ IDEA创建WebApp

3.1.1 打开IntelliJ IDEA,点击'Create New Project'
Create New Project
Create New Project
3.1.2 左边栏选择'Maven'项目,SDK选择1.7.0_80,勾选'Create from archetype',选择org.apache.maven.archetypes:maven-archetype-webapp,点击下一步
0001
0001
3.1.3 'GroupId'填写项目包名,'ArtifactId'填写项目名称,点击下一步
0002
0002
3.1.4 选择默认配置,下一步
0003
0003
3.1.5 'Project name'填写项目名称,'Project location'填写项目存储的地址,点击完成,开始构建项目
0004
0004
3.1.6 项目构建时会出现右下角的弹窗点击'Enable Auto-Import'即可
0005
0005
3.1.7 配置pom.xml,导入工程需要的包
<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 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>cn.semiwarm</groupId>
    <artifactId>SemiWarmAdmin</artifactId>
    <packaging>war</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SemiWarmAdmin</name>
    <url>http://maven.apache.org</url>

    <dependencies>

        <!-- 1.单元测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

        <!-- 2.日志 -->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.2.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.22</version>
        </dependency>

        <!-- 3.数据库 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.40</version>
            <scope>runtime</scope>
        </dependency>

        <!-- 4.阿里巴巴数据库连接池-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.28</version>
        </dependency>

        <!-- 5.MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.1</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.0</version>
        </dependency>

        <!-- 6.Servlet web -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!--Servlet版本设置-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>

        <!--7.Json-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.6</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.8.6</version>
        </dependency>

        <!-- 8.Spring -->
        <!-- 1)Spring core -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <!-- 2)Spring mapper -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <!-- 3)Spring web -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>
        <!-- 4)Spring test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.2.RELEASE</version>
        </dependency>

        <!-- 9.Map工具类 -->
        <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>3.2.2</version>
        </dependency>

        <!-- 10.文件上传工具 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency>

        <!-- 11.redis客户端:Jedis -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>com.dyuproject.protostuff</groupId>
            <artifactId>protostuff-core</artifactId>
            <version>1.0.8</version>
        </dependency>
        <dependency>
            <groupId>com.dyuproject.protostuff</groupId>
            <artifactId>protostuff-runtime</artifactId>
            <version>1.0.8</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>SemiWarmAdmin</finalName>
    </build>
</project>
3.1.8 配置工程结构

在'main'文件夹下新增'java'文件夹,在'src'文件夹下新增'test'文件夹,在'test'文件夹下新增'java'文件夹和'resources'文件夹,分别选中右键,选择'Make Directory as'下的'Test Sources Root'和'Test Resources Root'。其中'test'下的'java'文件夹中放单元测试类。

/src/main下新增java文件夹,在/src下新增test文件夹,在/test文件夹下新增javareousrces文件夹

0007
0007

选中/src/main/java文件夹右键,选择Make Directory as下的Sources Root选项;

0008
0008

选中/src/test/java文件夹右键,选择Make Directory as下的Test Sources Root选项;

0009
0009

选中/src/test/resources文件夹右键,选择Make Directory as下的Test Resources Root选项;

0010
0010

完成后的项目结构如下

0011
0011
3.1.9 配置web.xml
0013
0013

打开/src/main/webapp/WEB-INF/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_3_1.xsd"
         version="3.1"
         metadata-complete="true">
    
    <!-- 默认的首页 -->
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>default.html</welcome-file>
        <welcome-file>default.htm</welcome-file>
        <welcome-file>default.jsp</welcome-file>
    </welcome-file-list>

    <!-- 配置前端控制器DispatcherServlet -->
    <servlet>
        <servlet-name>mvc-dispatcher</servlet-name> <!-- 前端控制器 -->
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置springMVC需要加载的配置文件
            spring-mapper.xml -> mybatis
            spring-service.xml -> spring
            spring-web.xml -> springmvc
            spring-transaction.xml -> transaction
         -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring/spring-*.xml</param-value>
        </init-param>
    </servlet>
    <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <!-- 更改为全局配置 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    <!-- druid ==> WEB方式监控配置 -->
    <servlet>
        <servlet-name>DruidStatView</servlet-name>
        <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>DruidStatView</servlet-name>
        <url-pattern>/druid/*</url-pattern>
    </servlet-mapping>
    <filter>
        <filter-name>druidWebStatFilter</filter-name>
        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
        <init-param>
            <param-name>exclusions</param-name>
            <param-value>/public/*,*.js,*.css,/druid*,*.jsp,*.swf</param-value>
        </init-param>
        <init-param>
            <param-name>principalSessionName</param-name>
            <param-value>sessionInfo</param-value>
        </init-param>
        <init-param>
            <param-name>profileEnable</param-name>
            <param-value>true</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>druidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 防止中文乱码 -->
    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

    <!-- 防止html页面出现中文乱码 -->
    <mime-mapping>
        <extension>htm</extension>
        <mime-type>text/html;charset=utf-8</mime-type>
    </mime-mapping>

    <mime-mapping>
        <extension>html</extension>
        <mime-type>text/html;charset=utf-8</mime-type>
    </mime-mapping>

    <!--配置错误页面-->
    <error-page>
        <error-code>404</error-code>
        <location>/static/view/404.html</location>
    </error-page>
    
</web-app>

拷贝完成后会出现以下错误:

0014
0014
  • 将光标放在红色的spring上,按住alt+ebter自动修复,系统会自动在/src/main/resources下创建spring文件夹,这个文件夹用于存放spring-*.xml文件,这些文件是SpringMVC的配置文件,下面将会讲到,请继续往下看。
0015
0015
  • 这里的红色报错是因为不存在该文件夹,同样的将光标放在static上按住alt+enter自动修复;再将光标放在view上按住alt+enter自动修复;最后将光标放在404.html上按住alt+enter自动修复。系统会自动在/src/main/webapp/下创建相应的文件夹和文件。

此时配置文件中还会有如下错误:

0016
0016

这是因为我们还没有在/src/main/resources/spring文件夹中创建spring-dao.xml,spring-mvc.xml,sping-service.xmlspring-transaction.xml等文件,但是在创建这些Spring的配置文件之前,我们还需要重新构建以下项目结构

3.1.10 根据需求再次配置项目结构

/src/main/java下面创建包cn.semiwarm.admin

0012
0012

cn.semiwarm.admin包下分别创建controllerentityexceptionmapperservice等包,并在service包下创建impl

0019
0019
  • controller包用于存放控制器或者叫处理器即xxxController.java文件
  • entity包用于存放数据库的实体映射类即beans
  • exception包用于存放自定义的异常类
  • mapper包用于存放接口类,相当于dao接口即xxxMapper.java文件
  • service包用于存放业务接口类即xxxService.java文件
  • service包下的impl包用于存放接口的实现类即xxxServiceImpl.java文件
3.1.11 开始配置Spring配置文件

右键/src/main/resources文件夹创建Spring的所有配置文件

0017
0017

创建完成后如图所示,在Spring配置文件的右上角会提示加载所有依赖,暂时不要点击,先来完成所有的配置内容,最后再加载所有的依赖

0018
0018
3.1.11.1 配置spring-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置整合mybatis过程 -->
    <!-- 1.配置数据库相关参数properties的属性:${url} -->
    <!-- 使用数据库配置文件解耦 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 下面的druid配置都是基本配置,具体优化设置可以上网查询,也可以去github上面直接搜索druid -->
    <!-- 2.数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 配置连接池属性 -->
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>

        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="1"/>
        <property name="minIdle" value="1"/>
        <property name="maxActive" value="10"/>

        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="10000"/>

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000"/>

        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000"/>
        <property name="testWhileIdle" value="true"/>

        <!-- 这里建议配置为TRUE,防止取到的连接不可用 -->
        <property name="testOnBorrow" value="true"/>
        <property name="testOnReturn" value="false"/>

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="true"/>
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20"/>

        <!-- 这里配置提交方式,默认就是TRUE,可以不用配置 -->
        <property name="defaultAutoCommit" value="true"/>

        <!-- 验证连接有效与否的SQL,不同的数据配置不同 -->
        <property name="validationQuery" value="select 1 "/>
        <property name="filters" value="stat"/>
        <property name="proxyFilters">
            <list>
                <ref bean="logFilter"/>
            </list>
        </property>
    </bean>

    <bean id="logFilter" class="com.alibaba.druid.filter.logging.Slf4jLogFilter">
        <property name="statementExecutableSqlLogEnable" value="false"/>
    </bean>

    <!-- 3.配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource"/>
        <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
        <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
        <!--扫描实体类包名-->
        <property name="typeAliasesPackage" value="cn.semiwarm.admin.entity"/>
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/*.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 给出需要扫描mapper接口包 -->
        <property name="basePackage" value="cn.semiwarm.admin.mapper"/>
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

</beans>

拷贝上面的内容后出现以下错误:

0020
0020

缺少jdbc配置文件,同样的使用alt+enter自动创建该文件并在配置文件中添加以下内容

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://115.159.204.67:3306/SemiWarm?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=12345
0022
0022

添加完成后错误就会消失

0023
0023

接下来还会有Mybatis的错误提示,同样是缺少配置文件

0021
0021

我们使用自动修复创建mybaits文件夹和mybatis-config.xml配置文件,并在配置文件中添加以下内容

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置全局属性 -->
    <settings>
        <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
        <setting name="useGeneratedKeys" value="true" />

        <!-- 使用列别名替换列名 默认:true -->
        <setting name="useColumnLabel" value="true" />

        <!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>

    <!-- 1.此处不需要配置mapper,因为之后要使用Mybatis和Spring的整合包进行mapper扫描 -->
    <!-- 2.必须遵循mapper.xml和mapper.java同名并且在一个包内 -->
    <!--<mappers></mappers>-->
</configuration>

添加完成后还会出现以下错误,这是因为在/src/main/resources/mapper文件夹中没有xxxMapper.xml

0024
0024

只需要在/src/main/resources/mapper中添加一个BaseMapper.xml文件就可以了

右键mapper文件夹,在弹出的输入框中输入BaseMapper.xml文件即可创建BaseMapper.xml文件

0025
0025

在BaseMapper.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是指明Mybatis扫描的目录,即cn.semiwarm.admin.mapper.xxxMapper -->
<mapper namespace="cn.semiwarm.admin.mapper.BaseMapper">
</mapper>

此时刚刚的那个错误就会消失了。

0026
0026
3.1.11.2 配置spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 配置SpringMVC -->
    <!-- 1.开启SpringMVC注解模式 -->
    <!-- 简化配置:
        (1)自动注册DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter
        (2)提供一些列:数据绑定,数字和日期的format @NumberFormat, @DateTimeFormat, xml,json默认读写支持
    -->
    <mvc:annotation-driven/>

    <!-- 2.静态资源默认servlet配置
        (1)加入对静态资源的处理:js,gif,png
        (2)允许使用"/"做整体映射
     -->
    <mvc:resources mapping="/css/**" location="/static/css/"/>
    <mvc:resources mapping="/fonts/**" location="/static/fonts/"/>
    <mvc:resources mapping="/images/**" location="/static/images/"/>
    <mvc:resources mapping="/js/**" location="/static/js/"/>
    <mvc:resources mapping="/view/**" location="/static/view/"/>
    <mvc:default-servlet-handler/>

    <!-- 3.配置jsp 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!-- 4.扫描controller包 -->
    <context:component-scan base-package="cn.semiwarm.admin.controller">
        <!-- 制定扫包规则 ,只扫描使用@Controller注解的JAVA类 -->
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
    </context:component-scan>

</beans>
0027
0027

还是会出现一些问题,请不要惊慌...我已经不想说,这里就不能用自动修复了,然后请继续往下看

选中左边的static文件夹中手动创建缺失的文件夹

0028
0028

完成后错误就会消失

0029
0029
3.1.11.3 配置spring-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

</beans>
3.1.11.4 配置spring-transaction.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 扫描service包下所有使用注解的类型 -->
    <!-- cn.semiwarm为我们应用的包名,当然也是我们前面提到过的GroupId -->
    <context:component-scan base-package="cn.semiwarm.admin.service"/>

    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 注入数据库连接池,引用的是spring-mapper.xml中dataSource的配置 -->
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 配置基于注解的声明式事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

还是会有错误,这里只需要点击右上角自动载入所有的配置文件就OK了

0030
0030
0031
0031
3.1.12 配置本地Tomcat服务器

本来想实现在本地写代码,然后点击运行的时候能直接将项目部署到远程服务器的,但是找遍了网上的资料,也测试了好几种方法,仍然没有如愿的,最后不得已使用本地Tomcat服务器进行测试,通过后再将.war文件上传至服务器的Tomcat下的webapps文件夹下。

基于这种想法,下面开始搭建本地Tomcat服务器。

首先下载apache-tomcat-8.5.9确保本地环境和服务器环境一致。下载链接点击这里

解压至本地目录

/Library/Tomcat/apache-tomcat-8.5.9

启动Tomcat

cd /Library/Tomcat/apache-tomcat-8.5.9/bin
./startup.sh

有时候会遇到不能启动的问题,可能是权限不够只需要授权即可

cd /Library/Tomcat/apache-tomcat-8.5.9/bin
chmod +x *.sh

再次启动即可。

这里我们不需要启动,因为后面是要在IntelliJ IDEA中配置Tomcat的

好,让我们回到IntelliJ IDEA中。

按照下图所示操作。打开配置中心。

0032
0032

点击'+',下拉左侧菜单,找到'Tomcat Server',点击'Local'

0033
0033

填写服务器名称,查找本机Tomcat所在文件夹并配置添加,Fix错误,最后点击'OK'

0034
0034
0035
0035
0036
0036
3.1.13 配置远程数据库(可选)

远程数据库这个东西其实可以在第三方工具里面配置的,但是本人不喜欢安装第三方工具,平时尽量保证开发环境干净整洁,所以就直接在IntelliJ IDEA中配置了远程数据库。

在IntelliJ IDEA的菜单栏中选择'View'-'Tool Windows'->'DataBase'

在弹出的边窗口中选择左上角的'+'->'Data Source'->'MySQL'

0037
0037
0038
0038

具体配置如下:

0039
0039

配置完成点击测试连接。测试通过后点击'OK'即可。

0040
0040

到这里就可以点击那个你老早就想点击运行的绿色按钮了,开开心心的点击吧,不出意外你应该就可以看到浏览器中的'Hello World!'了

0041
0041
0042
0042

至此本地开发换件搭建完毕,下一篇将开始测试本地环境

参照:Clone丶记忆

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,029评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,395评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,570评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,535评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,650评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,850评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,006评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,747评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,207评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,536评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,683评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,342评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,964评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,772评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,004评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,401评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,566评论 2 349

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,773评论 6 342
  • jHipster - 微服务搭建 CC_简书[//www.greatytc.com/u/be0d56c4...
    quanjj阅读 800评论 0 2
  • 1. 前言 在前一篇教程中我们介绍了如何使用IntelliJ IDEA搭建本地开发环境,同时也集成了本地服务器和远...
    Alibct阅读 878评论 0 1
  • 献血,现在可能许多人都见过停在街头的献血车,我第一次献血实在大学校园! 那是秋季周末的一个早晨,学校餐厅旁的公报栏...
    长征2016阅读 387评论 0 0