zoukankan      html  css  js  c++  java
  • IDEA搭建基于maven 的SSM框架

    1、【File】->【new】->【Project】,选择【maven】,勾选【Create from archetype】,选择【maven-archetype-webapp】选项,点击Next。

     2、填写【GroupId】和【Artifactld】等信息,点击next。

    3、填写Maven配置文件路径。

     4、得到如下项目结构。

     5、在/src/main目录下创建java和test目录,并标记为Sources文件。

     至此,一个完整的Web项目创建完成。

    6、集成Spring。

      首先在pom文件中添加相关依赖。具体代码如下:

    <properties>
            <spring.version>5.0.4.RELEASE</spring.version>
    </properties>
    <dependencies>
            <!--spring start -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</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-aop</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-expression</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-test</artifactId>
                <version>${spring.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--spring end -->
            <!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>    
    </dependencies>

    其次,在/src/main/resources目录下创建applicationContext.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"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans-2.5.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-2.5.xsd">
        <context:component-scan base-package="com.hengx" />
    
    </beans>
    <context:component-scan base-package="com.hengx"/> 注解:扫描base-package包或者子包下面所有Java类,并把匹配的Java类注册成为Bean。

    接着我们配置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>
      <display-name>Archetype Created Web Application</display-name>
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
    </web-app>
    <context-param>:整个项目的全局变量,相当于设定一个固定值。param-name是键,相当于就是参数名,param-value就是值,相当于参数值。
    ContextLoaderListener :ContextLoaderListener监听器实现了ServletContextListener接口,其作用就是启动Web容器时,自动装配ApplicationContext的配置信息。在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。

    7、集成Spring MVC框架

      首先把集成Spring MVC所需要的Maven依赖添加到pom.xml文件中。

    <properties>
            <spring.version>5.0.4.RELEASE</spring.version>
            <javax.servlet.version>4.0.0</javax.servlet.version>
            <jstl.version>1.2</jstl.version>
    </properties>
    
    <!--springmvc start -->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>${jstl.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${javax.servlet.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <!--springmvc end -->

    其次,在web.xml配置文件中添加DispatcherServlet配置。

    <!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>
      <display-name>Archetype Created Web Application</display-name>
      
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
      </context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
      
      <!-- 配置DispatcherServlet -->
      <servlet>
        <servlet-name>spring-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--    配置SpringMVC需要加载的配置文件 spring-mvc.xml-->
        <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>spring-dispatcher</servlet-name>
    <!--    默认匹配所有的请求-->
        <url-pattern>/</url-pattern>
      </servlet-mapping>
      
    </web-app>
    DispatcherServlet类:DispatcherServlet是前置控制器,主要用于拦截匹配的请求,拦截匹配规则要自己定义,把拦截下来的请求,依据相应的规则分发到目标Controller来处理,是配置Spring的第一步。
    <load-on-startup>:表示启动容器时初始化该Servlet。当值为0或者大于0时,表示容器在应用启动时加载并初始化这个Servlet。如果小于0或未指定时,则指示容器在该Servlet被选择时才加载。正值越小,Servlet的优先级越高。

    接下来我们在/src/main/resources目录下创建并配置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:context="http://www.springframework.org/schema/context"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:aop="http://www.springframework.org/schema/aop"
           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
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop.xsd">
    
        <!-- 扫描controller(后端控制器),并且扫描其中的注解-->
        <context:component-scan base-package="com.hengx.controller" />
        <!--    设置配置方案-->
        <mvc:annotation-driven />
    
        <!--    配置 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/views/"/>
      <property name="suffix" value=".jsp"/>
      </bean>
    </beans>

    测试一下

     

     

     8、集成Mybatis框架

      导入依赖。

    <properties>
        <spring.version>5.0.4.RELEASE</spring.version>
            <javax.servlet.version>4.0.0</javax.servlet.version>
            <jstl.version>1.2</jstl.version>
            <mybatis.version>3.4.0</mybatis.version>
            <mysql.connector.java.version>5.1.38</mysql.connector.java.version>
            <druid.version>1.1.9</druid.version>
            <mybatis.spring.version>1.3.1</mybatis.spring.version>
    </properties>
    
    <!--mybatis start -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.connector.java.version}</version>
                <scope>runtime</scope>
            </dependency>
    
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${spring.version}</version>
            </dependency>
            
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>${mybatis.spring.version}</version>
            </dependency>
            <!--mybatis end -->

    其次,在/src/main/resources 目录下创建jdbc.properties配置文件

    jdbc.driverClassName=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://127.0.0.1:3306/数据库名字?serverTimezone=GMT
    jdbc.username=用户名
    jdbc.password=密码

    在applicationContext.xml中添加如下配置:

    <!--1、配置数据库相关参数-->
        <context:property-placeholder location="classpath:jdbc.properties" ignore-unresolvable="true"/>
    
    <!--2.数据源 druid -->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <property name="driverClassName" value="${jdbc.driverClassName}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
        </bean>
    
    <!--3、配置SqlSessionFactory对象-->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!--注入数据库连接池-->
            <property name="dataSource" ref="dataSource"/>
            <!--扫描sql配置文件:mapper需要的xml文件-->
            <property name="mapperLocations" value="classpath:mapper/*.xml"/>
            <!-- mybatis配置文件的位置 -->
            <property name="configLocation" value="classpath:mybatis-config.xml"></property>
            <!-- 配置分页插件 -->
            <property name="plugins">
                <array>
                    <bean class="com.github.pagehelper.PageInterceptor">
                        <property name="properties">
                            <value>
                                helperDialect=mysql
                                reasonable=true
                            </value>
                        </property>
                    </bean>
                </array>
            </property>
    
        </bean>
    
    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
            <constructor-arg index="0" ref="sqlSessionFactory"/>
        </bean>
    
    <!-- 扫描basePackage下所有以@MyBatisDao注解的接口 -->
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
            <property name="basePackage" value="com.hengx.dao"/>
    
        </bean>

    所有配置都已完成,那么下面我们开发相关代码。

    在Mysql创建表hero。

    
    CREATE TABLE `hero` (
      `id` int(10) NOT NULL AUTO_INCREMENT,
      `name` varchar(32) DEFAULT NULL,
      `hp` float DEFAULT NULL,
      `damage` int(10) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8

     数据库表创建完之后,在/src/main/java/com.hengx.model 目录下创建数据库表对应的实体类对象Hero。

    public class Hero {
        private int id;
        private String name;
        private float hp;
        private int damage;
        //省略get、set方法      
    }

    实体类对象Hero创建完成之后,在/src/main/java/com.hengx.dao 目录下创建对应的DAO对象HeroDao,HeroDao是一个接口,提供了findAll方法来查询所有的用户。

    package com.hengx.dao;
    
    import com.hengx.model.Hero;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Repository
    public interface HeroDao {
        List<Hero> findAll();
    }

    接口类HeroDao 创建完成之后,在/src/main/java/com.hengx.service目录下创建对应服务层接口HeroService,服务层接口HeroService 只提供了一个查询所有用户的方法findAll()。

    package com.hengx.service;
    
    import com.hengx.model.Hero;
    import java.util.List;
    
    
    public interface HeroService {
        List<Hero> findAll();
    }

    然后开发对应实现类HeroServiceImpl。

    package com.hengx.service.impl;
    
    import com.hengx.dao.HeroDao;
    import com.hengx.model.Hero;
    import com.hengx.service.HeroService;
    import org.springframework.stereotype.Service;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @Service
    public class HeroServiceImpl implements HeroService {
    
     @Resource
     private HeroDao heroDao;
    
        @Override
        public List<Hero> findAll() {
            return heroDao.findAll();
        }
    }

    之后创建,HeroController。

    package com.hengx.controller;
    
    import com.hengx.model.Hero;
    import com.hengx.service.HeroService;
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @Controller
    @RequestMapping("/user")
    public class HeroController {
    
        @Resource
        private HeroService heroService;
    
        @GetMapping("/findAll")
        public String findAll(Model model){
            List<Hero> heroList = heroService.findAll();
            for (Hero hero:heroList) {
                System.out.println("id=:"+hero.getId());
                System.out.println("name=:"+hero.getName());
    
            }
            return "hello";
        }
    
    
    }

    最后,在/src/main/resources/mapper目录下创建HeroMapper.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">
    <mapper namespace="com.hengx.dao.HeroDao">
    
    
    
        <select id="findAll"  resultType="com.hengx.model.Hero">
            SELECT * FROM hero
        </select>
    
    
    
    </mapper>

    OK,访问/user/findAll

     

    成功查询到数据。整合成功。

     9.1、集成Log4j日志框架

      首先导入依赖

    <properties>
        <slf4j.version>1.7.25</slf4j.version>
        <log4j.version>1.2.17</log4j.version>
    </properties>
    <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>

    之后在 /src/main/java/resources/下创建配置文件 log4j.properties

    ### set log levels ###
    log4j.rootLogger=DEBUG,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=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
    ### 输出到日志文件 ###
    #log4j.appender.File=org.apache.log4j.RollingFileAppender
    #log4j.appender.File.File=${project}/WEB-INF/logs/app.log
    #log4j.appender.File.DatePattern=_yyyyMMdd'.log'
    #log4j.appender.File.MaxFileSize=10MB
    #log4j.appender.File.Threshold=ALL
    #log4j.appender.File.layout=org.apache.log4j.PatternLayout
    #log4j.appender.File.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss,SSS}][%c]%m%n

    9.2、集成Junit测试框架

      导入依赖

    <!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
            </dependency>

    至此结束!

  • 相关阅读:
    [crontab]修改默认编辑器
    [mysql]忘记用户密码或者误删用户账号
    [vim]多行注释和多行删除
    [mysql]my.cnf在哪里
    [python]有中文字符程序异常的解决方案
    [Linux]虚拟机无法安装deepin15.9的解决方案
    Elasticsearch5.X IN Windows 10 系列文章(2)
    Elasticsearch5.X IN Windows 10 系列文章(1)
    HTTP Error 502.5
    centos7 yum install redis
  • 原文地址:https://www.cnblogs.com/hengx/p/14494251.html
Copyright © 2011-2022 走看看