spring
2021-07-01 15:01:57 0 举报
AI智能生成
spring框架介绍
作者其他创作
大纲/内容
IOC/DI
概念
IOC
控制反转
对象的创建的权限,从程序本身交给了外部容器-spring
DI
依赖注入
spring在创建对象时,也会为对象注入属性.spring也管理了具体的对象的之间关系.从角度上说也被称之为依赖注入
bean常用属性
作用
声明定义一个简单JavaBean对象
BeanDefinition
属性
id
bean唯一属性,在IOC容器中是key
name
bean的别名
class
bean对应的具体的class类
scope
作用域
singleton
单例
默认
prototype
非单例
request
当前请求
session
当前会话
primary
优先
depends-on
依赖
lazy-init
延迟初始化
autowired
自动装配
autowire-candidate
是否作为自动装配候选项
init-method
初始化方法
destroy-method
销毁的方法
IOC创建对象的四种方式
构造方法
constructor
index
参数索引
name
参数名称
type
参数类型
value
参数值
ref
bean标签的id值
静态工厂
bean
class
静态工厂类
factory-method
工厂方法
非静态工厂
bean
factory-bean
非静态工厂对象
factory-method
工厂方法
注解
@Component
@Controller
@Service
@Repository
IOC属性注入三种方式
构造器
使用构造器注入时,如果没有对应的方法,在xml定义时会报错
set方法
使用set方法注入时,name是set方法去掉set,首字母小写的名称
注解
注解是自动注入,在自动注入时,如果是xml自动装配,则需要属性有set方法,如果是注解不需要的.并且,spring在自动注入时,是可以使用构造方法自动注入的
各种类型的属性注入
简单类型
value
数组
set
list
map
properties
class
value值为class是使用类的全路径
AOP
概念
面向切面编程
什么是面向切面编程
程序默认是纵向扩展,继承,实现,重写等方式,上下扩展.这种扩展是建立在类与类之间存在联系.
而将程序中很多零散的功能通过横向的方式进行扩展,减少类耦合性的联系.提高程序的内聚性.这种横向扩展方式就是面向切面
为什么要面向切面编程
减少耦合性,提交内聚.便于程序的扩展.拔插式的扩展,提交了程序的维护性
如何面向切面编程
使用代理
JDK动态代理
cglib动态代理
spring的AOP配置
spring原生
1.配置目标类对象
2.实现增强类接口
MethodBeforeAdvice
前置增强
AfterReturningAdvice
后置增强
MethodInterceptor
环绕增强
ThrowsAdvice
异常增强
3.配置增强类对象
4.配置切点规则
aop:pointcut
5.配置增强和切点关系
aop:advisor
AspectJ
1.配置目标类对象
2.配置增强类对象
3.配置切点规则
4.配置切点和增强关系
AspectJ注解
1.@Aspect
定义增强类
2.@Pointcut
定义增强规则
3.增强类型
@Before
@AfterReturning
@Around
@AfterThrowing
声明式事务
事务隔离级别
读未提交
读已提交
不可重复读/幻读
可重复读
幻读
脏读/幻读/不可重复读
串行化
事务的传播性
使用事务
有事务就使用,没有事务就创建
支持事务
有事务就使用事务,没有事务就不使用事务
必须有事务
当前必须有事务,如果没有就异常
必须没有事务
当前必须没有事务,有就异常
嵌套事务
父事务异常,会回滚子事务,子事务异常由于try...catch了不回滚父事务
@Transactional
rollbackFor
默认是RuntimeException,值使用Exception
readOnly
只读事务表示只能进行查询操作
springmvc
概念
是一个对servlet进行了封装的web层的mvc框架
组件
核心处理器
DispatchServlet
处理器映射器
HandlerMapping
适配器
HandlerAdapter
处理器
Handler
HttpRequestHandler
Controller
@Controller注解
模型视图解析器
ViewResolver
视图
内部转发视图
重定向视图
功能
参数映射
@RequestParam
为参数名设置别名,设置默认值
请求跳转
默认:内部转发
forward:
重定向
redirect:
根目录
在springmvc中/表示更目录
自定义视图解析器
视图解析器只对内部转发生效
InternalResourceViewResolver
preFix
前缀
suffix
后缀
参数传递
在springmvc中,传输的传递可以使用Request对象,但是springmvc推荐model对象
Model
只包含参数
ModelAndView
包含参数和视图路径
Servlet内置对象
HttpServletRequest
1.自动注入
2.HttpRequestHolder
HttpSession
1.自动注入
2.HttpRequestHolder
ServletContext
ContextLoader
获取WebApplicationContext
ServletContext
返回JSON
在springmvc中默认返回的值会当做视图路径处理,如果想要返回值直接返回给客户端.可以使用@ResponseBody注解进行标记
使用@ResponseBody注解标识该方法返回的数据是JSON
注意:
默认使用的字符串转换器是使用ISO-8859-1编码,可以在@RequestMapping中使用produces设置返回的数据的格式
也可以在xml中统一配置转换器的编码格式
但是springmvc中含有默认的对象转换器,对象转换器是使用Jackson进行转换
1.引入jackson的jar包
2.返回对象
3.@ResponseBody注解
0 条评论
下一页