Spring Bean的作用域,Spring AOP的关注点和横切关注的区别,Mybatis的工作流程!

1. Spring Bean的作用域之间有什么区别?

Spring容器中的bean可以分为5个范围。所有范围的名称都是自说明的,但是为了避免混淆,还是让我们来解释一下:
singleton:这种bean范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个bean的实例,单例的模式由bean factory自身来维护。
prototype:原形范围与单例范围相反,为每一个bean请求提供一个实例。
request:在请求bean范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收器回收。
Session:与请求范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效。
global-session:global-session和Portlet应用相关。当你的应用部署在Portlet容器中工作时,它包含很多portlet。如果你想要声明让所有的portlet共用全局的存储变量的话,那么这全局变量需要存储在global-session中。
全局作用域与Servlet中的session作用域效果相同。
简写:
singleton全局只有一个实例
Prototype每次调用产生一个新的实例
Request每次请求产生一个bean
Session每个session可以产生新的bean,多个用户的bean互不干扰
globalSession作用和session类似,只是使用portlet的时候使用

2. 在Spring AOP 中,关注点和横切关注的区别是什么?

关注点是应用中一个模块的行为,一个关注点可能会被定义成一个我们想实现的一个功能。
横切关注点是一个关注点,此关注点是整个应用都会使用的功能,并影响整个应用,比如日志,安全和数据传输,几乎应用的每个模块都需要的功能。因此这些都属于横切关注点。
简写:
关注点是应用中一个模块的行为,可能会被定义成我们想实现的一个功能。
横切关注点是一个关注点,是整个应用都会使用的功能,并影响整个应用,比如日志,数据传输,几乎应用的每个模块都需要的功能。这些都属于横切关注点。
类似于班级里面 我是关注点, 老师是横切关注,我操作我的电脑,老师带着我们操作所有电脑,老师是影响整个班级也就是应用!

3. mybatis的基本工作流程

1.读取配置文件,配置文件包含数据库连接信息和Mapper映射文件或者Mapper包路径。
2.有了这些信息就能创建SqlSessionFactory,SqlSessionFactory的生命周期是程序级,程序运行的时候建立起来,程序结束的时候消亡
3.SqlSessionFactory建立SqlSession,目的执行sql语句,SqlSession是过程级,一个方法中建立,方法结束应该关闭
4.当用户使用mapper.xml文件中配置的的方法时,mybatis首先会解析sql动态标签为对应数据库sql语句的形式,并将其封装进MapperStatement对象,然后通过executor将sql注入数据库执行,并返回结果。
5.将返回的结果通过映射,包装成java对象。
简写:
1)先创建SqlSessionFactory然后再创建SqlSessionFactory读取配置文件再依据配置文件中的配置找映射文件(mapper.xml);
2)读取映射文件中的SQL语句创建PreparedStatementSQL语句
3)SqlSessionFactory再调用openSession()返回一个SqlSession对象,该对像封装了执行预编译SQL语句的相关方法.
4)SqlSession调用具体执行方法,传入sql id和参数.依据sql id去Map中找对应sql id的value(预编译SQL),将参数传入预编译的SQL中并调用PreparedStatement对象的excuteUpdate()方法执行该SQL语句.
5)如果是插入,则会返回int类型的行数,如果是查询,返回list entity map!

发布了10 篇原创文章 · 获赞 0 · 访问量 353

猜你喜欢

转载自blog.csdn.net/weixin_45925109/article/details/104742823