AOP:面向切面编程,一种编程思想。
作用:在不惊动原始的程序中对功能进行增强。
原有的程序叫做切入点,进行功能加强的方法叫做通知,他们之间通过切面绑定起来。
实现AOP:
@EnableAspectJAutoProxy :表示使用了注解开发AOP,写在Spring的config中。
@Aspect :表示此处是AOP开发
@Pointcut(切入点表达式):定义AOP的切入点
@Before:将切入点和通知绑定,在通知前执行。
@around:将切入点和通知绑定,在通知前和通知后执行
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