首页 > 其他分享 >ssm整合后的使用

ssm整合后的使用

时间:2022-10-30 23:23:00浏览次数:48  
标签:xml 使用 new public ssm 整合 org import pageInfo

一. ssm中添加分页控件

1.添加jar包

<!-- 添加分页插件的依赖包 -->
<dependency>
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper</artifactId>
  <version>5.1.2</version>
</dependency>

2.配置分页拦截器

mybatis.xml文件中添加

<!--在版本5之前的配置方式 -->
<!-- 
<plugins>
    <plugin interceptor="com.github.pagehelper.PageHelper">
         <property name="dialect" value="mysql" />
    </plugin>
</plugins>
-->
<!-- 在版本5之后的配置方式-->
<plugins>
   <plugin interceptor="com.github.pagehelper.PageInterceptor" />
</plugins> 

3.在service层添加一个分页方法

//分页查询
@Override
public PageInfo<Items> selectItems(int pageindex, int pagesize) {

    //开启分页  在后面调用查询语句的时候会加入limit
    PageHelper.startPage(pageindex,pagesize);

    //调用查询所有的方法  (会被加入limit)
    List<Items> itemsList=  itemsMapper.selectItems();

    //组装pageinfo对象返回
    PageInfo<Items> pageInfo=new PageInfo<Items>(itemsList);

    return pageInfo;


}

4.在控制层调用分页方法

@RequestMapping("/selectItemsListByPage")
public ModelAndView selectItemsListByPage(@RequestParam(value ="pageindex",defaultValue ="1" ) int pageindex)
{

    PageInfo<Items> pageInfo = itemsService.selectItems(pageindex,3);

    ModelAndView modelAndView=new ModelAndView();

    modelAndView.addObject("pageInfo",pageInfo);

    modelAndView.setViewName("showItemsByPage");

    return modelAndView;



}

5.创建showItemsByPage.jsp显示

<c:forEach var="items" items="${pageInfo.list}">
    ${items.name}<br/>
</c:forEach>

总共查询到<span>${pageInfo.total}</span>条记录,
共<span>${pageInfo.pages}</span>页
当前是第<span>${pageInfo.pageNum}</span>页

<c:forEach var="i" begin="1" end="${pageInfo.pages}" >
    <a href="selectItemsListByPage?pageindex=${i}">${i}</a>&nbsp;&nbsp;
</c:forEach>

二 .ssm中添加aop

1.导入jar

<!-- 导入aop jar -->
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.8.10</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aspects</artifactId>
  <version>4.1.3.RELEASE</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
  <version>4.1.3.RELEASE</version>
</dependency>

2.创建切面类

package com.test.aspects;

import net.sf.jsqlparser.statement.execute.Execute;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

import java.beans.Expression;
import java.text.SimpleDateFormat;
import java.util.Date;

@Aspect
public class TimeAspects {

    @Pointcut("execution(* com.test.service.impl.ItemsService.select*(..))")
    public void point()
    {}

    @Before("TimeAspects.point()")
    public void before()
    {
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:ms");

        System.out.println("开始执行的时间:"+simpleDateFormat.format(new Date()));
    }

    @AfterReturning("execution(* com.test.service.impl.ItemsService.select*(..))")
    public void afterReturn()
    {
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss:ms");

        System.out.println("成功执行的时间:"+simpleDateFormat.format(new Date()));
    }

}

3.创建aop的配置文件

applicationContext-aop.xml

因为扫描包的配置已经在application-ioc.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:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
   http://www.springframework.org/schema/context
   http://www.springframework.org/schema/context/spring-context-4.0.xsd
   http://www.springframework.org/schema/aop
   http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
   http://www.springframework.org/schema/tx
   http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!-- 创建切面类对象 -->
    <bean id="timeAspects" class="com.test.aspects.TimeAspects" />

    <!-- 开启 aop 自动代理
        做织入操作
     -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>


</beans>

4.修改web.xml文件中的spring配置文件的导入

改为applicationContext-*.xml

<!-- 配置spring...xml文件的路径 -->
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext-*.xml</param-value>
</context-param>

<!-- 配置context 加载的监听器   -->
<!-- 加载spring 的容器 -->
<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

5.运行

http://localhost:8080/testssm/items/selectItemsListByPage

因为这个方法中会调用service层的selectItemsListByPage方法,符合切点,所以会织入进来

。。。

成功执行的时间:2019-06-26 04:13:12:1312

标签:xml,使用,new,public,ssm,整合,org,import,pageInfo
From: https://www.cnblogs.com/daimenglaoshi/p/16842607.html

相关文章

  • Docker使用中相关清理命令:删除容器与镜像
    在构建Docker镜像的过程中,会产生一些无用的窗口与镜像;在构建过程中也可能会遇到失败,需要进行清理。删除容器与镜像,一般需要先停止在运行中的容器。杀死所有正在运行的容......
  • 兄弟组件使用中央事件总线进行传值
    兄弟组件使用中央事件总线进行传值 对于非父子组件通讯:使用空实例/中央事件总线.VueX当项目业务复杂程度不高,可以选用中央事件总线解决当项目业务十分庞大时,一......
  • 使用lingo解决规划问题
    整数规划(@gin的应用)model: sets: row/1..4/:b; col/1..5/:c1,c2,x; link(row,col):a; endsets data: c1=1,1,3,4,2; c2=-8,-2,-3,-1,-2; a=11111 ......
  • 【Vue3】watch 监听器的使用
    watch的三个参数watch第一个参数,监听源watch第二个参数,回调函数cb(newVal,oldVal)watch第三个参数,一个options配置项是一个对象{immediate:true//是否......
  • 3.6 使用Python向工作表中插入_删除行与列
    插入一列.insert_cols(idx=数字编号)插入多列.insert_cols(idx=数字编号,amount=要插入的列数)插入一行.insert_rows(idx=数字编号)插入多行.insert_rows(idx=数字编......
  • Vue表单输入绑定、组件、插槽的使用(三)
    一、表单输入绑定<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> <linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bo......
  • 3.5 使用Python向Excel文件中写入数据
    1.创建工作簿和工作表workbook=openpyxl.Workbook()#创建工作簿sheet=workbook.create_sheet()#创建工作表2.向某个格子写入内容sheet[‘A1’]=‘hello,Python’3.......
  • Vim使用方法 PowerVim使用方法
    如果是初学vi,运行一下vimtutor是个聪明的决定。(如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutorzh)在终端中直接输入:vimtutor-移动光标:    ......
  • react框架下GSAP动画插件-ScrollTrigger的使用介绍
    ScrollTrigger插件这个插件是基于GSAP使用的,ScrollTrigger仅仅是用来控制触发动画,而GSAP才是用来操作元素。react框架使用ScrollTrigge,首先是引入ScrollTriggerimport......
  • 【目标检测】使用TensorRT加速YOLOv5
    前言今天是程序员节,当然是以程序员的方式来度过节日。很早就听说TensorRT可以加速模型推理,但一直没时间去进行实践,今天就来把这个陈年旧坑填补一下。背景知识在实践之前有......