Spring 复习

SpringBoot简化了Maven配置,整合了Spring框架,提供快速启动项目的能力。它支持RESTful风格的请求,注解如@Controller、@ResponseBody用于处理HTTP请求。此外,文章提到了SpringBoot的事务管理策略,以及如何通过注解控制事务行为。

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

SpringBoot是什么?

是由Spring团队开发的,整合了Spring框架,SpringMVC框架的所有jar包.

SpringBoot的好处?

 1.简化了Maven的操作,以前自己找jar包的坐标,现在直接创建springboot工程勾选你要的功能
2.SpringBoot项目可以快速启动/关闭,就是像服务器(Tomcat)一样的操作.被整合了
3.简单快速整合其他技术 

restful 接受请求和get的区别

get:把数据用?进行拼接,多个数据之间用&连接(?id=10&price=100)

restful:可以简化get提交数据(/10/100),没有把具体的显示出来,使用{地址}来解析地址,使用@pathvariable来绑定参数与地址中值,如果参数列表是对象,不需要加注解

注解

注解名称意义
@SpringBootApplicationspringboot项目启动类上标志,标志是springboot项目
@PathVariable@PathVariable
@Aspect切面,表示这个类要aop面向切面编程
@Pointcut()切点表达斯
@value(${yml中的名字})从spring中获取数据,需要指定的key
@ResponseBody前后端交互时,将后端服务器返回的对象转化为JSON
   前后端交互媒介 http协议 传输的数据都是字符串
@Controller将当前类交给Spring容器管理
@RestController= @Controller + @ResponseBody
@Data自动生成get/set/toString/equals/hashcode等方法
@Accessors(chain = true)重写了set方法
@AllArgsConstructor含参构
@NoArgsConstructor无参构造
@bean自定义对象,交给spring容器来管理,在配置文件中生效
@configuration 表明是配置类,这里可以编制自定义对象

@SpringBootTest

: 让Spring容器启动并且为对象提供服务.
@mapper将mapper接口交给spring 管理
@mapperScan()按照指定的包扫描路径,扫描接口对象
@CrossOrigin解决跨域问题
@Transactional事务控制O
RestControllerAdvice全局异常处理
@ExceptionHandler(value = RuntimeException.class)运行时异常
@TableName("demo_user")对象和表名对应
@TableId(type = IdType.AUTO)主键自增
@TableField(value = "name")


自定义对象怎么写

1.在配置类中写,使用@configuration

2.必须有返回值,将方法名当做key--user,将返回值对象当做值value * 根据Key-value 存储到Map集合中 交给Spring容器管理 * Map<user,User对象>

测试方法写法?

1.不能有返回值 必须为void

* 2.不能携带参数 *

3.测试方法名称 不能叫test

Spring控制事务策略规则:


1. Spring中的事务注解 默认条件下只处理运行时异常.如果遇到检查异常(编译异常)事务控制没有效果.
2. 注解的属性控制
rollbackFor = IOException.class , 遇到某种异常实现事务的回滚
noRollbackFor = 遇到某种异常事务不回滚.
readOnly = true 该操作是只读的,不能修改. 公告/合同等
 

SSM框架 

 持久层用来和数据库读写ORM,业务层用来处理复杂的业务逻辑,控制层用来处理MVC的控制

springmvc 是什么

Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,

MVC工作原理

用户发送请求至前端控制器DispatcherServlet。

2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3、处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4、DispatcherServlet调用HandlerAdapter处理器适配器。

5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

6、Controller执行完成返回ModelAndView。

7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。

8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器。

9、ViewReslover解析后返回具体View。

10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

11、DispatcherServlet响应用户。
 

Spring是什么 ?

Spring 模块构建在核心容器之上,核心容器定义了创建、配置和管理 bean 的方式

1. 核心容器Spring Core | 核心容器提供Spring框架的基本功能。核心容器的主要组件是BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC)模式,将应用程序的配置和依赖性规范与实际的应用程序代码分开。 |
2. Spring上下文Spring Context | Spring上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。 |
3. Spring AOP | 通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。可以很容易地使 Spring框架管理的任何对象支持AOP。Spring AOP模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。 |
4. Spring DAO | JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。 |
5.Spring ORM | Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具。 |
6. Spring Web | Web上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。Web模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
7.Spring MVC框架 | MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术

控制反转,依赖注入,面向切面是什么?

1.IoC控制反转:将对象Object的创建的权力及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不在需要关注对象的创建和生命周期的管理,而是在需要的时候由Spring框架提供,这个由Spring框架管理对象创建和生命周期的机制称之为控制反转
2. DI依赖注入:在创建对象的过程中Spring可以依据对象的关系,自动把其它对象注入(无需创建对象,直接拿着使用)进来,这个过程称之为DI(Dependency Injection)依赖注入。

 AOP的三要素


切面(Aspect) 类是对物体特征的抽象,切面就是对同一类问题(横切关注点)的抽象
通知(Advice) 来指定具体做什么事情。如方法执行前做什么,方法执行后做什么,抛出异常做什么,从而实现对象行为(方法)的增强
切点(PointCut) 配置切点表达式(expression)来指定在哪些类的哪些方法上织入(ware)横切一些逻辑
连接点(JoinPoint) JPoint 是一个程序的关键执行点,也是我们关注的重点。它就是指被切点拦截到的点然后执行一些通知

五种通知

  1. 前置通知before
  2. 后置通知after
  3. 环绕通知around
  4. 返回后通知afterReturning
  5. 异常通知afterThrowing。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值