黑马程序员SSM—Spring学习笔记(6)

目录

一、Spring整合Mybatis

二、Spring整合Junit

三、AOP

1、AOP作用

2、AOP核心概念

3、AOP入门案例 

4、通配符

 5、AOP通知类型

5.1、前置通知

5.2、后置通知

5.3、环绕通知(重点)


一、Spring整合Mybatis

(1)项目中导入整合需要的jar包

<dependency>
    <!--Spring操作数据库需要该jar包-->
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.2.10.RELEASE</version>
</dependency>
<dependency>
    <!--
		Spring与Mybatis整合的jar包
		这个jar包mybatis在前面,是Mybatis提供的
	-->
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>

(2)创建Spring的主配置类

(3)在配置类中完成数据源的创建

(4)主配置类中读properties并引入数据源配置类

(5)创建Mybatis配置类并配置SqlSessionFactory

(6)主配置类中引入Mybatis配置类

(7)编写运行类App并运行


二、Spring整合Junit

(1)引入依赖

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.2.10.RELEASE</version>
</dependency>


(2)编写测试类

三、AOP

1、AOP作用


在不惊动原始设计的基础上为其进行功能增强


2、AOP核心概念


(1) 连接点(JoinPoint):程序执行过程中的任意位置,粒度为执行方法、抛出异常、设置变量等,在SpringAOP中,理解为方法的执行
(2)切入点(Pointcut):匹配连接点的式子,在SpringAOP中,一个切入点可以描述一个具体方法,也可也匹配多个方法
一个具体的方法:如com.itheima.dao包下的BookDao接口中的无形参无返回值的save方法
匹配多个方法:所有的save方法,所有的get开头的方法,所有以Dao结尾的接口中的任意方法,所有带有一个参数的方法
(3)通知(Advice):在切入点处执行的操作,也就是共性功能,在SpringAOP中,功能最终以方法的形式呈现
(4)通知类:定义通知的类
(5)切面(Aspect):描述通知与切入点的对应关系。

3、AOP入门案例 

案例设定:在方法执行前输出当前系统时间。

(1)添加BookDao和BookDaoImpl类

public interface BookDao {
    public void save();
    public void update();
}


@Repository
public class BookDaoImpl implements BookDao {

    public void save() {
        System.out.println(System.currentTimeMillis());
        System.out.println("book dao save ...");
    }

    public void update(){
        System.out.println("book dao update ...");
    }
}

(2) 创建Spring的配置类

(3)编写App运行类


(4)添加依赖

<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.9.4</version>
</dependency>

(5)定义通知类和通知

(6)定义切入点

(7)制作切面

  • @Before翻译过来是之前,也就是说通知会在切入点方法执行之前执行

(8)将通知类配给容器并标识其为切面类

(9)开启注解格式AOP功能

(10)运行程序,结果为

4、通配符

(1)*:单个独立的任意符号,可以独立出现,也可以作为前缀或者后缀的匹配符出现
  execution(public * com.itheima.*.UserService.find*(*))
  匹配com.itheima包下的任意包中的UserService类或接口中所有find开头的带有一个参数的方法

(2).. :多个连续的任意符号,可以独立出现,常用于简化包名与参数的书写

  execution(public User com..UserService.findById(..))

  匹配com包下的任意包中的UserService类或接口中所有名称为findById的方法

 5、AOP通知类型

5.1、前置通知

(1)添加BookDao和BookDaoImpl类

public interface BookDao {
    public void update();
    public int select();
}


@Repository
public class BookDaoImpl implements BookDao {
    public void update(){
        System.out.println("book dao update ...");
    }
    public int select() {
        System.out.println("book dao select is running ...");
        return 100;
    }
}

(2)创建通知类

(3)修改MyAdvice,在before方法上添加@Before注解

(4)运行App类,结果为

5.2、后置通知

(1)修改MyAdvice,在before方法上添加@After注解

(2)运行App类,结果为

5.3、环绕通知(重点)

(1)修改MyAdvice,在before方法上添加@Around注解

(2)在around的通知上,加ProceedingJoinPoint pjp,用   pjp.proceed()对原始操作调用

(3) 运行App类,结果为

  • 13
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>cn.itcast.parent</groupId> <artifactId>itcast-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <groupId>cn.itcast</groupId> <artifactId>travel</artifactId> <version>1.0.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency> <!-- 连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> </dependency> <!-- Jackson Json处理工具包 --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>jstl</groupId> <artifactId>jstl</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> </dependency> </dependencies> <build> <plugins> <!-- 配置Tomcat插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <configuration> <port>8080</port> <path>/</path> </configuration> </plugin> </plugins> </build> </project>
很高兴能回答你关于黑马程序员SSM框架笔记的问题!SSM框架是指Spring + SpringMVC + MyBatis的组合,它们分别是Java开发中常用的三个主流框架。下面是一些关于SSM框架的基本笔记: 1. Spring框架:Spring是一个轻量级的JavaEE开发框架,它提供了很多功能,包括依赖注入、面向切面编程、事务管理等。使用Spring可以简化开发过程,提高代码的可维护性和可测试性。 2. SpringMVC框架:SpringMVC是Spring框架的一部分,它是一个基于MVC(Model-View-Controller)模式的Web框架。SpringMVC提供了很多特性,如请求映射、数据绑定、视图解析等,使得开发Web应用更加简单和灵活。 3. MyBatis框架:MyBatis是一个持久层框架,它提供了对数据库的访问和操作。MyBatis使用简单的XML或注解来配置SQL语句,并提供了很多数据库操作的方法,使得开发数据访问层更加方便。 4. SSM整合配置:在使用SSM框架时,需要将SpringSpringMVC和MyBatis进行整合。一般来说,可以通过Spring的配置文件将它们整合在一起,配置数据源、事务管理、扫描包等。 5. 常用注解:在SSM框架中,有很多常用的注解可以使用。例如,@Controller用于标识一个控制器类,@RequestMapping用于映射请求路径和处理方法等。 以上是一些关于黑马程序员SSM框架的基本笔记,希望能对你有所帮助!如果你有任何其他问题,欢迎继续提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值