完整开发步骤

      • 导包

        • spring的jar包
        • mybatis的jar包
        • mybatis-Spring的jar包
        • aop的依赖jar包
        • oracle等数据库连接的jar包
        • DataSource的jar包
        • 日志包
      • 导入配置文件
        • web.xml
        • mvc.xml
        • applicationContext.xml
        • applicationContext.properties
      • 初始化配置
        • web.xml

          • spring核心控制器

          • 指定mvc配置文件的路径

          • 指定编码的filter

          • `<servlet>
                <servlet-name>mvc</servlet-name>
                <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
                <!-- 指定springMVC配置文件的路径 -->
                <init-param>
                  <param-name>contextConfigLocation</param-name>
                  <param-value>classpath:mvc.xml</param-value>
                </init-param>
                <!-- 设置tomcat启动前去创建servlet对象 -->
                <load-on-startup>1</load-on-startup>
              </servlet>
              <!-- 指定springMVC的所有控制器的访问路径都以*.do结尾 -->
              <servlet-mapping>
                <servlet-name>mvc</servlet-name>
                <url-pattern>*.do</url-pattern>
              </servlet-mapping>`

          • spring工厂初始化的监听器

          • spring配置文件初始化

          • `

            <listener>
                    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
                </listener>

            <!--3. 手动指定配置文件路径  -->
                <context-param>
                    <param-name>contextConfigLocation</param-name>
                    <param-value>classpath:/applicationContext.xml</param-value>
                </context-param>

            `

        • mvc.xml

          • 注解管理controlller
          • 注解开发mvc
          • `<context:component-scan base-package="com.baizhi"></context:component-scan>
                 <mvc:annotation-driven></mvc:annotation-driven>`
        • applicationContext.xml

          • 引入外部的配置文件
          • ` <context:property-placeholder location="classpath:/application.properties"></context:property-placeholder>`
          • 开启注解管理除了Controller
          • `<context:component-scan base-package="com.baizhi"></context:component-scan>`
          • 连接池
          • `<bean id="dataSour" class="com.alibaba.druid.pool.DruidDataSource">
                     <property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
                     <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
                     <property name="username" value="${database.username}"></property>
                     <property name="password" value="${database.password}"></property>
                     <property name="initialSize" value="${database.initialSize}"></property>
                     <property name="maxActive" value="${database.maxActive}"></property>
                     <property name="maxWait" value="${database.maxWait}"></property>
                 </bean>
                 `
          • 事务相关
          • `<!-- 配置增强类所需要用到的事务管理器 -->
                 <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                     <property name="dataSource" ref="dataSour"></property>
                 </bean>`
          • `<!-- 配置能自动生成事务先关的增强类的类 -->
                 <tx:advice id="txAdvice" transaction-manager="txManager">
                     <tx:attributes>
                         <tx:method name="get*" read-only="true" propagation="SUPPORTS" rollback-for="java.lang.RuntimeException"/>
                         <tx:method name="to*" read-only="false" propagation="REQUIRED" rollback-for="java.lang.RuntimeException"/>
                         <tx:method name="*" read-only="false" propagation="REQUIRED" rollback-for="java.lang.RuntimeException"/>
                     </tx:attributes>
                 </tx:advice>`
          • `<!-- aop动态代理选择切入点和组装 -->
                 <aop:config>
                     <aop:pointcut expression="execution(* com.baizhi.service.impl.*.*(..))" id="usercut"/>
                     <aop:advisor advice-ref="txAdvice" pointcut-ref="usercut"/>
                 </aop:config>`
          • Mybatis相关
          • `<bean id='sqlSessionFactory' class="org.mybatis.spring.SqlSessionFactoryBean">
                       <property name="dataSource" ref="dataSour"></property>
                       <property name="mapperLocations" value="classpath:/com/baizhi/dao/impl/*.xml"></property>
                       <property name="typeAliasesPackage" value="com.baizhi.entity"></property>
                   </bean>
              <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
                  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
                  <property name="basePackage" value="com.baizhi.dao"></property>
              </bean>`

SSM的开发步骤分析的更多相关文章

  1. 开发步骤Dubbo、spring mvc、springboot、SSM整合开发步骤

    一.Dubbo开发步骤: 链接:https://pan.baidu.com/s/1pMPO1kf 密码:9zaa 第一: 1.创建consumer工程2.在pom.xml文件下添加配置3.添加appl ...

  2. 开发步骤Dubbo、spring mvc、springboot、SSM开发步骤

    一.Dubbo开发步骤: 链接:https://pan.baidu.com/s/1pMPO1kf 密码:9zaa 第一: 1.创建consumer工程2.在pom.xml文件下添加配置3.添加appl ...

  3. 以DDD为开发模式的设计开发步骤可以是

    以DDD为开发模式的设计开发步骤可以是:1)分析需求:2)画出用例图,系统中各个角色如何使用系统,也包括外部系统如何使用系统,也包括系统中到某个时间点自动启动的某些功能(此时角色就是时间):3)针对各 ...

  4. Android_app项目开发步骤总结

    做了几个android企业应用项目后,总结了项目的基本开发步骤.希望可以交流. 一 应用规划:      ※确定功能.      ※必须的界面及界面跳转的流程.      ※须要的数据及数据的来源及格 ...

  5. Web应用程序的开发步骤

    Web应用程序的开发步骤 如今已进入了web2.0高速发展的互联网时代,各种互联网的Web应用程序如雨后春笋般出现.那么作为一名Web开发人员,怎样去开发一款优秀的Web应用程序呢?这个问题没有一个简 ...

  6. SSM框架开发web项目系列(二) MyBatis真正的力量

    前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBa ...

  7. SSM框架开发web项目系列(五) Spring集成MyBatis

    前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑 ...

  8. ssm基础搭建步骤

    今天搭建新的项目环境,从网上找了些ssm的搭建步骤,终于找到了一位csdn的大佬,可以说写的特别详细,按照上面步骤搭建即可,为了方便日后参考,转载到本人博客,原文链接:https://blog.csd ...

  9. hadoop日志数据分析开发步骤及代码

    日志数据分析:1.背景1.1 hm论坛日志,数据分为两部分组成,原来是一个大文件,是56GB:以后每天生成一个文件,大约是150-200MB之间:1.2 日志格式是apache common日志格式: ...

随机推荐

  1. 【洛谷P4309】最长上升子序列

    题目大意:给定一个序列,初始为空.现在我们将 1 到 N 的数字插入到序列中,每次将一个数字插入到一个特定的位置.每插入一个数字,我们都想知道此时最长上升子序列长度是多少? 题解:学会了 rope 操 ...

  2. qt5--文件操作

    文本文件的读写操作: #include "win.h" #include "ui_win.h" #include <QDebug> #include ...

  3. Spark入Hbase的四种方式效率对比

    一.方式介绍 本次测试一种采用了四种方式进行了对比,分别是:1.在RDD内部调用java API.2.调用saveAsNewAPIHadoopDataset()接口.3.saveAsHadoopDat ...

  4. C# Stopwatch 延时

    using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading ...

  5. Spring前台填充数据

    举例: <div>${userinfo.name}</div>   显示规则 1.先判断对象有没有存在,对象存在的时候,才会查找对象里的字段.这个时候字段必须正确.2.如果对象 ...

  6. 51 Nod 1069 Nim游戏

    分析: a1 xor a2 xor a3 ... xor an !=0 则为必胜态 a1 xor a2 xor a3 ... xor an ==0 则为必败态 也就是说只要计算异或值,如果非零则A赢, ...

  7. Python3学习笔记(十六):随机数模块random

    一.random模块 1.random.random(): 返回0-1之间的随机浮点数 import random print(random.random()) 0.9348690085059901 ...

  8. [VIJOS2055][SDOI2019]移动金币:DP+组合数学

    分析 显然可以转化为阶梯nim. 于是问题转化为了对于所有\(i \in [0,n-m]\),求长度为\(\lfloor\frac{m+1}{2}\rfloor\),和为\(i\),异或和非\(0\) ...

  9. Java中String.getBytes()

    在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组.这个表示在不通OS下,返回的东西不一样!  String.getBytes(String decode) ...

  10. C++入门经典-例4.11-名称空间的定义和使用

    1:名称空间,也成为名字空间.命名空间,关键字为namespace.我们经常使用这样一条语句: using namespace std: 我们要使用标准输入输出流,除了包含它们所在的头文件外,还必须使 ...