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来绑定参数与地址中值,如果参数列表是对象,不需要加注解
注解
注解名称 | 意义 |
@SpringBootApplication | springboot项目启动类上标志,标志是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 是一个程序的关键执行点,也是我们关注的重点。它就是指被切点拦截到的点然后执行一些通知
五种通知
- 前置通知before
- 后置通知after
- 环绕通知around
- 返回后通知afterReturning
- 异常通知afterThrowing。