Spring AOP 事务 SpringMVC REST风格

本文深入探讨了AOP的概念及其在Spring框架中的实现,包括切入点表达式、通知类型和代理模式。此外,还介绍了Spring的事务管理,如何使用@Transactional注解进行事务控制。接着,简述了Spring MVC的基本原理和工作流程,以及解决乱码问题的方法。最后,提及了RESTful风格的重要性和实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AOP:面向切面编程,一种编程思想。

作用:在不惊动原始的程序中对功能进行增强。

原有的程序叫做切入点,进行功能加强的方法叫做通知,他们之间通过切面绑定起来。
 

实现AOP:

@EnableAspectJAutoProxy   :表示使用了注解开发AOP,写在Spring的config中。

 @Aspect  :表示此处是AOP开发

@Pointcut(切入点表达式):定义AOP的切入点

@Before:将切入点和通知绑定,在通知前执行。

@around:将切入点和通知绑定,在通知前和通知后执行

AOP的核心思想:使用代理模式来操作。

AOP切入点表达式的书写:

切入点表达式的标准格式:execution (访问修饰符 返回值 包名.类/接口名/方法名(参数)异常名),

表达式中可以用通配符*和..来描述,*表示单个独立任意符号,..表示多个连续的任意符号。

Spring 事务:

事务:同时成功或者同时回滚。

spring提供了PlatformTransactionManager事务接口。

实现:

1.在要加事务的方法上加上注解@Transactional,也可以写在接口上。

2.在jdbc的配置类中定义一个事务管理器。

3.在spring配置类中告诉spring使用注解的事务管理器

@Transactional():开启事务,此处括号中可以设置属性rollbackor = {遇到xx异常后回滚,此处的xx可以自己设置多个,以.class结尾}

Spring mvc

概述:Spring mvc和Servlet技术等同,均属于web层的开发,可以理解为servlet的升级版,是一个表现层(servlet层)开发技术,用来web开发的框架。

@Controller(类注解) :设定Springmvc的核心控制器bean,位置放在Springmvc的控制器定义上面

@RequestMapping("/调用的地址名称"):设置当前控制器方法请求访问路径,位置放在springmvc的控制器方法定义上方

@ResponseBody:当前操作的返回值类型

实现:

1.导入servlet和springmvc的坐标

2.编写servlet和springmvc的配置类

2.1 简化编写servlet和springmvc的配置类

 3.编写controller控制器类

Springmvc的工作流程

 

 补充:

@ComponentScan:扫描包,可以用{xx,xx}来设置扫描多个包 通过excludeFilters属性来设置排除扫描的包,通过includeFilters来设置要扫描的包

Springmvc乱码解决:

在配置类中:

@RequestParm:绑定请求参数和处理器方法形参之间的关系。

@EnableWebMvc:开启由json转化为对象的功能,

@RequestBody:绑定请求体和处理器方法形参之间的关系。

接受请求中的json数据:

 

 postman中日期参数的传递:

@DateTimeFormat(pattern="日期的格式设置")

converter接口:类型转化器

数据响应:

使用@ResponseBody将java对象转为json格式的数据,设置当前控制器返回值为响应体

REST风格

一种资源访问风格

实现:

在控制器中@RequestMapping中value的值统一,但是method属性选择不同的提交方式,比如post,put,get。

 

 

好处:把操作行为隐藏,更加的安全。

@PathVariable:形参注解,用来接受请求路径上的参数的,要求请求路径和方法的形参一致。

@RestController:相当于写了@Controller和@ResponseBody

@GetMapping、@PostMapping、@PutMapping等代表着对应的@RequestMapping

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值