文档章节

IntelliJ IDEA 搭建基于Maven 的SSM(一)(spring,springMvc,Mybatis)框架整合

辉_Dreaming
 辉_Dreaming
发布于 2017/05/04 18:20
字数 2872
阅读 1183
收藏 3

一,搭建项目骨架

  使用Idea搭建基于Maven的单模块(即Dao,service,controller以及webapp均在一个父模块中)

1.File->New project创建基于Maven的web项目

2.填写基本的项目信息:

3.选择Maven所在的本地目录,以及配置文件setting.xml的位置

ps:在maven的配置文件setting.xml文件中mirrors节点下配置阿里云的远程仓库镜像地址,可以让项目的目录结构生成以及jar包的下载速度变快.

<mirror>
	  <id>alimaven</id>
	  <name>aliyun maven</name>
	  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
	  <mirrorOf>central</mirrorOf>        
</mirror>

4.项目信息填写

5.完成后 ,等待idea生成相应的目录结构

由于该目录结构并不完整,在File->Project  Structure上补充完整的目录,同时将目录标记成相应的颜色

    

二:配置文件

  1. pom.xm 
           

    基本上每个jar包都有注释(在这里笔者没有具体划分每个jar包的作用范围,导致有些jar包在整合简单的demo中其实并没有用到)
  2. <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>com.chuyu.web</groupId>
      <artifactId>web-ssm</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>web-ssm Maven Webapp</name>
      <url>http://maven.apache.org</url>
      <properties>
        <!-- spring 版本号 -->
        <spring.version>4.0.2.RELEASE</spring.version>
        <!-- mybatis版本号 -->
        <mybatis-version>3.2.6</mybatis-version>
        <!-- 日志版本 -->
        <slf4j-version>1.7.7</slf4j-version>
        <log4j-version>1.2.17</log4j-version>
        <!-- Junit版本号-->
        <Junit-version>4.5</Junit-version>
        <!-- mysql驱动版本号 -->
        <mysql-driver.version>5.1.29</mysql-driver.version>
      </properties>
      <dependencies>
        <!--导入spring依赖的jar包-->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-oxm</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-tx</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-jdbc</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context-support</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
          <version>${spring.version}</version>
        </dependency>
        <!-- mybatis核心包 -->
        <dependency>
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis</artifactId>
          <version>${mybatis-version}</version>
        </dependency>
        <dependency>
          <!-- mybatis-spring -->
          <groupId>org.mybatis</groupId>
          <artifactId>mybatis-spring</artifactId>
          <version>1.2.2</version>
        </dependency>
        <!-- 添加mysql驱动依赖 -->
        <dependency>
          <groupId>mysql</groupId>
          <artifactId>mysql-connector-java</artifactId>
          <version>${mysql-driver.version}</version>
        </dependency>
        <!-- 添加数据库连接池依赖 -->
        <!--<dependency>
          <groupId>commons-dbcp</groupId>
          <artifactId>commons-dbcp</artifactId>
          <version>1.2.2</version>
        </dependency>-->
      <!--druids数据连接池-->
        <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.0.18</version>
      </dependency>
    
    
        <!-- 添加fastjson -->
        <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.1.41</version>
        </dependency>
        <!-- 添加日志相关jar包 -->
        <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>${log4j-version}</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j-version}</version>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>${slf4j-version}</version>
        </dependency>
    
        <!-- 其他JSON,在springmvc配置文件中json绑定可能会用到 -->
        <dependency>
          <groupId>org.codehaus.jackson</groupId>
          <artifactId>jackson-mapper-asl</artifactId>
          <version>1.9.13</version>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-core</artifactId>
          <version>2.8.0</version>
        </dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.core</groupId>
          <artifactId>jackson-databind</artifactId>
          <version>2.8.0</version>
        </dependency>
        <!--其他工具包-->
        <dependency>
          <groupId>commons-fileupload</groupId>
          <artifactId>commons-fileupload</artifactId>
          <version>1.3.1</version>
        </dependency>
        <dependency>
          <groupId>commons-io</groupId>
          <artifactId>commons-io</artifactId>
          <version>2.4</version>
        </dependency>
        <dependency>
          <groupId>commons-codec</groupId>
          <artifactId>commons-codec</artifactId>
          <version>1.9</version>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>${Junit-version}</version>
          <scope>test</scope>
        </dependency>
        <!-- jstl -->
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>jstl</artifactId>
          <version>1.2</version>
        </dependency>
        <dependency>
          <groupId>javax.servlet</groupId>
          <artifactId>servlet-api</artifactId>
          <version>2.5</version>
        </dependency>
    
      </dependencies>
      <build>
        <plugins>
      <!-- mybatis的自动生成dao.xml的插件 -->
          <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
          </plugin>
        </plugins>
        <!--配置Maven 对resource文件 过滤 -->
        <resources>
          <resource>
            <directory>src/main/resources</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
          </resource>
          <resource>
            <directory>src/main/java</directory>
            <includes>
              <include>**/*.properties</include>
              <include>**/*.xml</include>
            </includes>
            <filtering>true</filtering>
          </resource>
        </resources>
        <finalName>web-ssm</finalName>
      </build>
    </project>
    

     

  3. application.xml

    1. <?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-3.1.xsd    
                              http://www.springframework.org/schema/context    
                              http://www.springframework.org/schema/context/spring-context-3.1.xsd">
      
      <!--配置包扫描的完整包名-->
      <context:component-scan base-package="com.chuyu.ssm"/>
      
      <!--导入其他的配置文件-->
          <import resource="spring-mybatis.xml"/>
      </beans>

       

  4. jdbc.properties

    1. driverClasss=com.mysql.jdbc.Driver
      jdbcUrl=jdbc:mysql://localhost:3306/quick4j?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
      username=root
      password=123456
      #定义初始连接数
      initialSize=0
      #定义最大连接数
      maxActive=20
      #定义最小空闲
      minIdle=1
      #定义最长等待时间
      maxWait=60000
      timeBetweenEvictionRunsMillis=28800

       

  5. log4j.properties

    1. log4j.rootLogger=INFO,Console,File
      
      #控制台日志
      log4j.appender.Console=org.apache.log4j.ConsoleAppender
      log4j.appender.Console.Target=System.out
      log4j.appender.Console.layout=org.apache.log4j.PatternLayout
      log4j.appender.Console.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n
      
      #普通文件日志
      log4j.appender.File=org.apache.log4j.RollingFileAppender
      log4j.appender.File.File=E:/IdeaProjects/web-ssm/src/main/logs/SSM.log
      log4j.appender.File.MaxFileSize=10MB
      #输出日志,如果换成DEBUG表示输出DEBUG以上级别日志
      log4j.appender.File.Threshold=ALL
      log4j.appender.File.layout=org.apache.log4j.PatternLayout
      log4j.appender.File.layout.ConversionPattern=[%p][%t][%d{yyyy-MM-dd HH\:mm\:ss}][%C] - %m%n
      

       

  6. spring-mybatis.xml

    1. <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:tx="http://www.springframework.org/schema/tx"
             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
              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
      
      
      <!-- 引入配置文件 -->
          <bean id="propertityConfigure"  class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
              <property name="location" value="classpath:jdbc.properties"/>
          </bean>
          <!-- 第二种方式:加载多个properties文件-->
          <!--<bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
              <property name="locations">
                  <list>
                      <value>classpath:jdbc.properties</value>
                      <value>classpath:common.properties</value>
                  </list>
              </property>
              <property name="fileEncoding" value="UTF-8"/>
          </bean>
          -->
          <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
                init-method="init" destroy-method="close">
              <property name="driverClassName" value="${driverClasss}"/>
              <property name="url" value="${jdbcUrl}"/>
              <property name="username" value="${username}"/>
              <property name="password" value="${password}"/>
              <!-- 初始化连接大小 -->
              <property name="initialSize" value="${initialSize}"></property>
              <!-- 连接池最大数量 -->
              <property name="maxActive" value="${maxActive}"></property>
              <!-- 连接池最小空闲 -->
              <property name="minIdle" value="${minIdle}"></property>
              <!-- 获取连接最大等待时间 -->
              <property name="maxWait" value="${maxWait}"></property>
              <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
              <property name="timeBetweenEvictionRunsMillis" value="${timeBetweenEvictionRunsMillis}" />
              <property name="validationQuery" value="SELECT 'x'" />
              <property name="testWhileIdle" value="true" />
              <property name="testOnBorrow" value="false" />
              <property name="testOnReturn" value="false" />
      
              <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
              <property name="poolPreparedStatements" value="true" />
              <property name="maxPoolPreparedStatementPerConnectionSize"
                        value="20" />
      
              <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
              <property name="filters" value="stat" />
          </bean>
          <!-- mybatis和spring完美整合,不需要mybatis的配置映射文件 -->
          <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
              <property name="dataSource" ref="dataSource"/>
              <!-- 自动扫描mapping.xml文件 -->
              <property name="mapperLocations" value="classpath:com/chuyu/ssm/dao/*-Mapper.xml"/>
          </bean>
          <!-- Dao借口所在的包名 -->
          <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
              <property name="basePackage" value="com.chuyu.ssm.dao" />
              <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
          </bean>
          <!-- 事物管理 -->
          <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
              <property name="dataSource" ref="dataSource" />
          </bean>
          <!--注解驱动-->
          <tx:annotation-driven transaction-manager="transactionManager"/>
      </beans>

      到处spring整合mybatis的部分完成,如果为了测试是否整合成功,可以在src/main/test 包中新建测试类 ,验证是否连通数据库再整合springMvc.

    2. 测试类如下

      import com.alibaba.fastjson.JSON;
      import com.chuyu.ssm.model.User_Dao;
      import com.chuyu.ssm.service.inte.User_loginServices;
      import org.junit.Test;
      import org.junit.runner.RunWith;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.test.context.ContextConfiguration;
      import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
      
      @RunWith(SpringJUnit4ClassRunner.class)
      @ContextConfiguration(locations ="classpath*:application.xml")
      public class TestUser_loginservice {
      
          @Autowired
          private User_loginServices user_loginServices;
          @Test
          public  void  test1(){
             User_Dao user=user_loginServices.selectUser("admin", "123456");
              System.out.println(JSON.toJSON(user));
      
          }
      
      }
      

      这里采用的是Junit4.5的测试方法.其中的service部分的代码可以参考后面章节.

      PS:如果比较熟练可以省掉此处测试步骤
  7. spring-mvc.xml

  8. <?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"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           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
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
       <!--注解驱动 -->
       <!-- 
           会自动注册RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean(spring3.0以后的版本),
          这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,
          @NumberFormatannotation支持,@DateTimeFormat支持,
           @Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。
         -->
        <mvc:annotation-driven/>
        <!-- 自动扫描  @Controller-->
        <context:component-scan base-package="com.chuyu.ssm.controller"/>
        <!--避免IE执行AJAX时,返回JSON出现下载文件 -->
        <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            <property name="messageConverters">
                <!-- 解释JSON -->
                <list>
                    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                        <property name="supportedMediaTypes">
                            <list>
                                <value>text/html;charset=UTF-8</value>
                                <value>text/json;charset=UTF-8</value>
                                <value>application/json;charset=UTF-8</value>
                            </list>
                        </property>
                    </bean>
                </list>
            </property>
        </bean>
        <!-- 定义跳转的文件的前后缀 ,视图模式配置 -->
        <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp"/>
        </bean>
        <!-- 文件上传配置 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 默认编码 -->
            <property name="defaultEncoding" value="UTF-8"/>
            <!-- 上传文件大小限制为31M,31*1024*1024 -->
            <property name="maxUploadSize" value="32505856"/>
            <!-- 内存中的最大值 -->
            <property name="maxInMemorySize" value="4096"/>
        </bean>
    
    
    </beans>

    7.web.xm

    <?xml version="1.0" encoding="utf-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
             id="WebApp_ID" version="3.0">
    <display-name>Archetype Created Web Application</display-name>
    
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath*:application.xml</param-value>
        </context-param>
    
        <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
        </context-param>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <!-- 防止spring内存溢出监听器,比如quartz -->
        <listener>
            <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
        </listener>
        <listener>
            <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
        </listener>
    
        <!-- 编码过滤器 -->
        <filter>
            <filter-name>encodingFilter</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>encodingFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        <!--druid过滤器filter-->
        <filter>
            <filter-name>DruidWebstateFilter</filter-name>
            <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
            <init-param>
                <param-name>exclusions</param-name>
                <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
            </init-param>
        </filter>
        <filter-mapping>
            <filter-name>DruidWebstateFilter</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
        
    
        <!-- spring mvc servlet-->
        <servlet>
            <servlet-name>SpringMVC</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <init-param>
                <param-name>contextConfigLocation</param-name>
                <param-value>classpath:spring-mvc.xml</param-value>
            </init-param>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>SpringMVC</servlet-name>
            <!-- 此处也可以配置成 *.do 形式 -->
            <url-pattern>*.action</url-pattern>
        </servlet-mapping>
    
        <!--servlet for Druid-->
        <servlet>
            <servlet-name>DruidStatView</servlet-name>
            <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
            <!--
                配置访问权限:
                deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。
                如果allow没有配置或者为空,则允许所有访问
             -->
            <!--
            <init-param>
                <param-name>allow</param-name>
                <param-value>128.242.127.1/24,127.0.0.1</param-value>
            </init-param>
            <init-param>
                <param-name>deny</param-name>
                <param-value>192.168.1.118</param-value>
            </init-param>
            -->
            <!-- 在StatViewSerlvet输出的html页面中,有一个功能是Reset All,执行这个操作之后,会导致所有计数器清零,重新计数 -->
            <init-param>
                <param-name>resetEnable</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <param-name>loginUsername</param-name>
                <param-value>admin</param-value>
            </init-param>
            <init-param>
                <param-name>loginPassword</param-name>
                <param-value>123456</param-value>
            </init-param>
          </servlet>
        <servlet-mapping>
            <servlet-name>DruidStatView</servlet-name>
            <url-pattern>/druid/*</url-pattern>
        </servlet-mapping>
        <welcome-file-list>
            <welcome-file>/index.jsp</welcome-file>
        </welcome-file-list>
    </web-app>
    

     

三,测试代码的编写

        1.Dao层以及接口文件:

   利用mybatis的插件Mybatis-generaotr-plugin生成实体类,Dao文件以及*Mapper.xml

映射文件:(具体步骤见:https://my.oschina.net/u/3406827/blog/879822)

        2.service层代码清单

@Service
public class User_loginServiceImpl implements User_loginServices {
    @Autowired
    private User_DaoMapper user_dao;

    @Override
    public User_Dao selectUser(String userName, String userPassword) {
        User_DaoExample example=new User_DaoExample();
        User_DaoExample.Criteria condition=example.createCriteria();
        condition.andUsernameEqualTo(userName);
        condition.andPasswordEqualTo(userPassword);
        List<User_Dao> user_list=user_dao.selectByExample(example);
        if(!CollectionUtils.isEmpty(user_list)){
            return user_list.get(0);
        }
        return null;    

    }
}

        3.Action层代码清单

    以简单的登录逻辑演示

@Controller
@RequestMapping("/userLogin")
public class UserLoginAction {
    @Autowired
    private User_loginServices user_loginServices;

    @RequestMapping("/authentication")
    public String userLogin(User_Dao paramDao){
        User_Dao user=user_loginServices.selectUser(paramDao.getUsername(), paramDao.getPassword());
        if (user!=null){
            System.out.println(JSON.toJSON(user));
            return "success";
        }
        return "fail";
    }

}

        4.前台页面

以简单的登录界面来演示整合的SSM,登录成功则跳转到成功页面,失败则跳转到失败页面

由于在配置文件中指定的前缀为/web-inf/jsp/ ,所有在web/info下新建jsp文件夹

index.jsp代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <base href="<%=basePath%>">
</head>
<br>
<h2>登录界面!</h2>
<form action="<%=basePath%>userLogin/authentication.action" method="post">
<label>用户名:</label><input type="text" name="username"></br>
<label>&nbsp;&nbsp;&nbsp;密码:</label><input type="text" name="password"/></br>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<button type="submit">提交</button>
</form>
</body>
</html>

其他登录成功和失败跳转的页面即在body里面添加内容以作区分即可.

    5:数据库    

    本例以Mysql为例,建立一个简单的表包含id,username,password 即可作为测试用

四:Tomcat的部署

   1.先打包成war包

对应Maven的各个生命周期,包括插件的知识详见:https://my.oschina.net/u/3406827/blog/893323

(打包过程中可能会出现:

[WARNING] Warning: selected war files include a WEB-INF/web.xml which will be ignored 
(webxml attribute is missing from war task, or ignoreWebxml attribute is specified as 'true') 

解决办法:

pom文件添加一下内容:

         <plugin>  
                <groupId>org.apache.maven.plugins</groupId>  
                <artifactId>maven-war-plugin</artifactId>  
                <version>2.1.1</version>  
                <configuration>  
                    <packagingExcludes>WEB-INF/web.xml</packagingExcludes>    
                </configuration>  
            </plugin>  

)

  2.点击Edit Configurations

3.添加一个Tomcat服务器

4.配置服务器参数

5.部署jar包,填写访问跟路径名

6:运行部署

点击Tomcat7旁边的运行按钮启动项目,如果没有启动异常,打开浏览器访问http://localhost:8080/web-ssm

访问:

至此,作为一个简单的整合SSM结束,后续也会在这个基础上作进一步的优化,包括数据的缓存,模块的划分(Maven 继承与聚合),分布式框架的集群搭建,以及Nginx的负载均衡等

© 著作权归作者所有

辉_Dreaming

辉_Dreaming

粉丝 5
博文 45
码字总数 45151
作品 0
武汉
私信 提问
Mybatis-Generator插件的使用与Spring集成Mybatis的配置

Mybatis-Generator插件 Mybatis-Generator是一个用于自动生成dao层接口、pojo以及mapper xml的一个Mybatis插件,该插件有三种用法:命令行运行、Eclipse插件、maven插件。个人觉得maven插件最...

ZeroOne01
2018/04/15
0
0
教你十分钟构建好 SpringBoot + SSM 框架

目前最主流的 java web 框架应该是 SSM,而 SSM 框架由于更轻便与灵活目前受到了许多人的青睐。而 SpringBoot 的轻量化,简化项目配置, 没有 XML 配置要求等优点现在也得到了大众的青睐 而本...

全部原谅
2018/07/30
0
0
在线官网Spring Initializr 或 IntelliJ IDEA 快速搭建springboot项目

Spring Boot是由Pivotal团队提供的全新框架,设计目的是用来简化新Spring应用的初始搭建以及开发过程。它主要推崇的是'消灭配置’,实现零配置。 那么,如何快速新建一个一个springboot项目脚...

Mr_ET
03/19
0
0
IntelliJ IDEA 中的 Maven 项目初体验及搭建 Spring MVC 框架

温馨提示:本教程的 GitHub 地址为「intellij-idea-tutorial」,欢迎感兴趣的童鞋、,纠错。 在「详述 IntelliJ IDEA 创建 Maven 项目及设置 java 源目录的方法」一文中,我们已经将 Intell...

qq_35246620
2018/04/23
0
0
SpringBoot 与 Kotlin 完美交融

本文讲解 Spring Boot2 基础下,如何使用 Kotlin,并无缝整合与完美交融。 环境依赖 修改 POM 文件,添加 spring boot 依赖。 <parent> </parent><dependencies> </dependencies> 紧接着,我......

java菜分享
04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

【AI实战】手把手教你深度学习文字识别(文字检测篇:基于MSER, CTPN, SegLink, EAST等方法)

文字检测是文字识别过程中的一个非常重要的环节,文字检测的主要目标是将图片中的文字区域位置检测出来,以便于进行后面的文字识别,只有找到了文本所在区域,才能对其内容进行识别。 文字检...

雪饼
今天
15
0
思维导图XMind 8 Pro 绿化方法(附序列号)

按部就班: Step 1 -全新下载最新版本的 Xmind 8(注必须是英文官方的版本,中文代{过}{滤}理网站的版本修改过,无法使用pj); Step 2 -安装完毕后,点击文末的下载按钮下载pj补丁文件包,将...

一只小青蛙
今天
10
0
数据结构(ER数据库)设计规范

表命名规范 表命名的规则分为3个层级,层级之间通过_分割,例如b_r_identity、d_l_identity。规约为: [leavel]_[type]_[name] [leavel] 表示数据库表的层级和功能,分为: s:业务无关的系统...

随风溜达的向日葵
今天
10
0
阿里Sentinel控制台源码修改-对接Apollo规则持久化

https://github.com/alibaba/Sentinel/wiki/%E5%9C%A8%E7%94%9F%E4%BA%A7%E7%8E%AF%E5%A2%83%E4%B8%AD%E4%BD%BF%E7%94%A8-Sentinel 动态规则扩展 https://github.com/alibaba/Sentinel/wiki......

jxlgzwh
昨天
14
0
在Linux系统中创建SSH服务器别名

如果你经常通过 SSH 访问许多不同的远程系统,这个技巧将为你节省一些时间。你可以通过 SSH 为频繁访问的系统创建 SSH 别名,这样你就不必记住所有不同的用户名、主机名、SSH 端口号和 IP 地...

老孟的Linux私房菜
昨天
13
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部