ssm框架整合,串联了之前的知识点

ssm框架整合

1.springMVC与spring的整合

  • 引入依赖jar包;(spring的相关jar(core,aop,test);springMVC的相关jar(web,webMVC,jackson,文件上传))

  • 分清楚父子容器。

    • spring父容器保存除了控制层以外的其他所有bean对象。

      • 在ContextLoaderListener监听器中:

        WebApplicationContext root = this.createWebApplicationContext(servletContext);
        root.setConfigLocation("classpath:spring.xml")
        root.refresh();
        
        servletContext.setAttribute("WebApplicationContext.ROOT", root);
        
        
    • springMVC子容器仅保存控制层bean对象,确保控制层框架的职责单一。

      • 在DispatcherServlet这个servlet中:

        WebApplicationContext root = servletContext.getAttribute("WebApplicationContext.ROOT");
        
        wac.setParent(root)
        
    • 控制层的bean要依赖其他bean,所以子容器要持有父容器。

2.mybatis与spring的整合

  • 添加mybatis.jar,数据库驱动包;Druid连接池包;mybatis-spring整合包;spring-jdbc.jar
  • 创建dao.xml,创建bean对象(DruidDataSource,SqlSessionFactoryBean)
  • 创建SqlSessionFactory,需要用到哪些数据(连接池,映射文件,别名,mybatis的settings配置)
  • 创建mapper接口的扫描,目的在tomcat启东时,把接口的代理对象创建出来放在spring容器中。

xml配置:init-method

注解:@PostConstruct

编程时:从InitializingBean接口,重写afterPropertiesSet方法,达到bean实例化后立即执行afterPropertiesSet。

3.事务管理器

  • 添加spring-tx.jar,spring-jdbc

  • 配置spring提供的事务管理器对象DataSourceTransactionManager

    声明式事务:

    • 基于注解@Transactional,推荐使用这种。

      • <tx:annotation-driven></tx:annotation-driven>
        
    • 基于xml配置配置事务通知,配置切入点表达式

      <tx:advice id="txAdvice">
              <tx:attributes>
                  <tx:method name="add*" propagation="REQUIRED"/>
                  <tx:method name="insert*" propagation="REQUIRED"/>
                  <tx:method name="update*" propagation="REQUIRED"/>
                  <tx:method name="upt*" propagation="REQUIRED"/>
                  <tx:method name="del*" propagation="REQUIRED"/>
                  <tx:method name="remove*" propagation="REQUIRED"/>
              </tx:attributes>
          </tx:advice>
      
          <aop:config>
              <aop:pointcut id="servicePointcut" expression="execution(* com.javasm.*.service.*.*(..))"></aop:pointcut>
              <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut"></aop:advisor>
          </aop:config>
      

4.mybatis的逆向工程

逆向工程:由数据库表,生成代理的过程

mybatis的逆向工程,能生成实体类,mapper接口,映射文件。

5.mybatis的分页插件

  • PageHelper分页插件两个jar包;
  • 配置分页插件到SqlSessionFactory对象。
<property name="plugins">
            <array>
                <bean class="com.github.pagehelper.PageInterceptor">
                    <!--分页参数合理化-->
                    <property name="properties">
                        <value>reasonable=true</value>
                    </property>
                </bean>
            </array>
</property>
  • 在handler处理器中使用.
PageHelper.startPage(pageNum,pageSize);
        List<Sysuser> sysusers = us.selectUsers(user);
        PageInfo pageInfo = new PageInfo(sysusers);//total,list,pageNum,pageSize,pages

6.日志组件

调试日志(开发时)

用户行为日志 (上线时)

异常日志(程序错误error,上线时)

日志组件,把日志分了7个级别,主要知道这四个DEBUG–>INFO–>WARN–>ERROR

System.out.println("")降低程序执行效率。

日志组件有两类:

日志接口组件:common-logging,slf4j,供中间件使用。

日志实现:log4j,logback,log4j2

6.1.log4j日志

  • 加jar包;
  • 加配置;
log4j.rootLogger:对所有的包,全局日志级别定义,输出位置1,输出位置2
log4j.appender.输出位置名称
log4j.logger:对某个包下的类定义日志级别
  • 代码;

6.2.log4j2日志

支持异步日志。使用异步生产者消费者Disruptor组件。

6.3.slf4j日志接口

在项目中使用:

日志门面SLF4J+日志实现log4j2

类中加成员变量:private org.slf4j.Logger l = LoggerFacgtory.getLogger(当前类Class对象);

记录日志:l.debug;l.info;l.warn;l.error

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值