Spring知识点总结

第一代:基本XML配置
第二代:基于注解配置
第三代:基于Java配置

配置spring弊端
1.大量xml配置文件
2.配置繁烦
3.包冲突


Springboot核心
1.起步依赖(maven)
2.自动配置(AutoConfigure)
3.命令行界面
4.Actuator(监控)

Springboot引导类:
1.@EnableAutoConfiguration(开启Springboot自动配置功能)
2.@Configuration(标识当前类是一个配置类)
3.@ComponentScan(启用组件扫描,默认将引导类所在的目录作为根目录扫描)


SpringMVC
1.包扫描(ComponentScan)
2.类实例化
3.依赖注入(Autowrite)
4.映射处理


Spring3中为Bean定义了5中作用域scope=调整作用域
1.singleton(单例,默认值)
IOC容器启动会启用方法创建对象放到IOC容器中,以后每次获取就直接从容器(map.get())中拿
2.prototype(多实例)
IOC容器启动并不会调用方法创建对象放在容器中,每次获取的时候才会调用方法创建对象
3.request(同一次请求创建一个实例)
4.session(同session创建一个实例)
5.global session

懒加载(@Lazy):容器启动不创建对象,第一次使用(获取)Bean创建对象,并初始化
单实例bean:默认在容器启动的时候创建对象


Spring事务
1.@Transactional事务注解如何产生作用?
通过AOP动态代理产生(常用于事务,日志管理,权限)
2.有哪些不同类型事务?
3.分别有不同效果?
4.spring是如何控制事务的提交与回滚?try/catch(rockback)


AOP:面向切面编程(动态代理)
核心原理:使用动态代理的设计模式在执行方法前后或出现异常做加入相关逻辑
(常用于事务,日志管理,权限)
指程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式。
1.导入aop模块(spring-aspects)
2.定义一个业务逻辑类,在业务逻辑运行的时候将日志进行打印(方法之前,方法进行,方法异常,方法结束)
3.定义一个日志切面类(aop类):切面类里面的方法需要动态感知业务逻辑类运行
前置通知(@Before):目标方法运行前运行
后置通知(@After):目标方法运行后运行
返回通知(@AfterReturning):目标方法运行正常运行
异常通知(@AfterThrowing):目标方法运行异常后运行
环绕通知(@Around):动态代理,手动推进目标方法运行(joinPoint.procced())
4.给切面类的目标方法标注何时何地运行(标注通知注解)
5.将切面类和业务逻辑类(目标方法所在类)都加入到容器中
6.定义Spring哪个类是切面类(给切面类加入一个注解:@Aspect)
7.关键一步:当前的配置类加入@EnableAspectJAutoProxy(开启基于注解aop模式)

原文地址:https://www.cnblogs.com/ningshare/p/10649882.html