SSM 搭建详细过程

SSM 搭建

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容)。常作为数据源较简单的web项目的框架。

Spring
  Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。
  Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。
  SpringMVC
  SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。
  mybatis
  mybatis是对jdbc的封装,它让数据库底层操作变的透明。mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。

页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据

创建过程
  1. idea–>File–>New–>Project–>Maven 选中 Create from archetype 然后在选择中 maven-archetype-webapp -->创建项目名–>选择maven文件和maven下的工具包(以下就是创建

    ssm 的过程)

    • Maven
      在这里插入图片描述

    • maven 工具包和maven文件
      在这里插入图片描述

搭建过程
  1. 先pom.xml里面引入jar包 基础jar如下

    • <dependencies>
          <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <!--Mybatis 核心-->
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.3.0</version>
          </dependency>
          <!-- Mybatis 和spring 的整合包-->
          <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.1</version>
          </dependency>
          <!-- spring mvc 核心-->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <!--spring jdbc 数据连接-->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <!--aop  环绕增强-->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <!--声明事务管理-->
          <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.0.9.RELEASE</version>
          </dependency>
          <!--数据连接池技术   其他选项  Alibaba dbcp-->
          <dependency>
            <groupId>com.mchange</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.5.2</version>
          </dependency>
          <!--数据库连接技术,根据直接的Mysql版本来定-->
          <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
          </dependency>
          <!--日志打印-->
          <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
          </dependency>
          <!--省去get  set 方法-->
          <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.12</version>
          </dependency>
        </dependencies>
      

在这里插入图片描述
在这里插入图片描述

这个步骤相信大家应该都会吧

  1. 在src下的main下创建—java(Sourcer Root)—resources (Resources Root)

    • java下创建以下包
      • cn
        • kgc
          • ssm
            • controller(控制器)
            • dao(数据库层)
            • pojo(实体类层)
            • service(逻辑实现成)
  2. resources下创建以下

    • mappers

      • userMapper.xml(sql语句)
    • applicationContext.xml

      • <!--开启全局的注解扫描-->
           <context:component-scan base-package="cn.kgc"/>
           <!--引入配置文件-->
           <context:property-placeholder location="classpath*:db.properties"/>
         
           <!--配置数据源-->
           <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
               <property name="user" value="${Namec}"/>
               <property name="password" value="${password}"/>
               <property name="jdbcUrl" value="${url}"/>
               <property name="driverClass" value="${driver}"/>
           </bean>
         
           <!--配置会话工厂-->
           <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
               <property name="dataSource" ref="dataSource"/>
               <!--设置别名-->
               <property name="typeAliasesPackage" value="cn.kgc.ssm.pojo"/>
               <!--映射mapper文件-->
               <property name="mapperLocations" value="classpath*:mappers/*Mapper.xml"/>
               <!--分页-->
               <property name="plugins">
                   <array>
                       <bean class="com.github.pagehelper.PageHelper">
                           <property name="properties">
                               <value>
                                   dialect=mysql
                               </value>
                           </property>
                       </bean>
                   </array>
               </property>
           </bean>
           <!--扫描dao层-->
           <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
               <property name="basePackage" value="cn.kgc"/>
           </bean>
         
           <!--事务控制-->
           <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
               <property name="dataSource" ref="dataSource"/>
           </bean>
         
           <!--创建声明式事务-->
           <tx:advice transaction-manager="transactionManager" id="txAdvice">
               <tx:attributes>
                   <!--针对不同的方法做不同的事务策略-->
                   <tx:method name="*" propagation="REQUIRED" timeout="-1"/>
               </tx:attributes>
           </tx:advice>
           <!--将控制融入到代码中-->
           <aop:config>
               <aop:advisor advice-ref="txAdvice" pointcut="execution(* cn.kgc.ssm.service.*.*(..))"/>
           </aop:config>
         
        
    • applictionContext-mvc.xml

      • <context:component-scan base-package="cn.kgc"/>
        
         <!--配置多视图解析器-->
            <bean class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
                <property name="viewResolvers" >
                    <list>
                        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                            <property name="suffix" value=".jsp"/>
                            <property name="prefix" value="/WEB-INF/jsp/"/>
                            <!--spring mvc 中的视图解析器会按照 order 来进行按序解析,值越小越在前面-->
                            <property name="order" value="2"/>
                        </bean>
                        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
                            <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
                            <!--前缀-->
                            <property name="prefix" value="/statics/html/"/>
                            <!--后缀-->
                            <property name="suffix" value=".html"/>
                            <!--为了防止无法找到页面而写的 html*表示只要逻辑视图名字携带了html开头页面将由此解析器捕获-->
                            <property name="viewNames" value="html*"/>
                            <!--解析顺序-->
                            <property name="order" value="1"/>
                        </bean>
                    </list>
                </property>
            </bean>
        
          <!--设置静态资源的访问-->
            <mvc:resources mapping="/statics/**" location="/statics/"/>
            <!--区分  是否是静态资源-->
            <mvc:annotation-driven>
                <!--消息转换器-->
                <mvc:message-converters>
                    <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                        <property name="supportedMediaTypes">
                            <list>
                                <!--设置接口生产的任何数据都设置成UTF-8 一次配置  永久搞定-->
                                <value>application/json;charset=UTF-8</value>
                                <value>application/xml;charset=UTF-8</value>
                                <value>text/html;charset=UTF-8</value>
                            </list>
                        </property>
                        <property name="objectMapper">
                            <bean class="cn.kgc.appinfodb.util.DateMapper" />
                        </property>
                    </bean>
                </mvc:message-converters>
            </mvc:annotation-driven>
        
        <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
                <property name="exceptionMappings">
                    <props>
                        &lt;!&ndash;前面是错误的类型.后面是如果发生了此错误前往什么页面&ndash;&gt;
                         <propkey="java.lang.RuntimeException">403</prop>
                    </props>
                </property>
            </bean>-->
        
         <!--设置文件上传-->
            <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
                <!--最大上传大小-->
                <property name="maxUploadSize" value="1024000000"/>
                <!--设置文件上传编码格式-->
                <property name="defaultEncoding" value="UTF-8"/>
            </bean>
        
    • db.properties(数据连接 用户名 密码 等等 用于连接数据库)

    • log4j.properties(日志文件)

  3. webapp(jsp 页面)

    • web-inf

      • web.xml(文件配置)

        • <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
            http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
              <display-name>Archetype Created Web Application</display-name>
          
              <listener>
                  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
              </listener>
              <context-param>
                  <param-name>contextConfigLocation</param-name>
                  <param-value>classpath*:applicationContext.xml</param-value>
              </context-param>
          
              <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*:applicationContext-mvc.xml</param-value>
                  </init-param>
                  <load-on-startup>1</load-on-startup>
              </servlet>
              <servlet-mapping>
                  <servlet-name>springmvc</servlet-name>
                  <url-pattern>/</url-pattern>
              </servlet-mapping>
          
              <!--过滤器-->
              <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>
                  <init-param>
                      <param-name>forceEncoding</param-name>
                      <param-value>true</param-value>
                  </init-param>
              </filter>
              <filter-mapping>
                  <filter-name>encodingFilter</filter-name>
                  <url-pattern>/*</url-pattern>
              </filter-mapping>
          </web-app>
          
          

以上便是 SSM 框架的搭建过程 (如有不足还望 指教谢啦!!☆⌒(*^-゜)v)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值