加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

精华:关于Spring的15点总结

发布时间:2019-05-10 08:05:14 所属栏目:移动互联 来源:java工橙诗
导读:1.Spring 中 AOP 的应用场景、Aop 原理、好处? 答:AOP 用来封装横切关注点,具体可以在下面的场景中使用:Authentication 权限、Caching缓存、Contextpassing内容传递、Errorhandling错误处理 Lazy loading 懒加载、Debugging 调试、logging,tracing,prof
副标题[/!--empirenews.page--]

精华:关于Spring的15点总结

1.Spring 中 AOP 的应用场景、Aop 原理、好处?

答:AOP 用来封装横切关注点,具体可以在下面的场景中使用: Authentication 权限、Caching缓存、Contextpassing内容传递、Errorhandling错误处理 Lazy loading 懒加载、Debugging 调试、logging,tracing,profilingandmonitoring 记录跟踪优化 校准、Performanceoptimization 性能优化、Persistence持久化、Resourcepooling 资源池、 Synchronization 同步、Transactions事务

原理:AOP 是面向切面编程,是通过代理的方式为程序添加统一功能,集中解决一些公 共问题。

好处:1.各个步骤之间的良好隔离性      2.源代码无关性

2.Spring 中 IOC 的作用与原理?对象创建的过程。

答:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用 者来创建被调用者的实例。但在 spring 中创建被调用者的工作不再由调用者来完成,因此称 为控制反转。创建被调用者的工作由 spring 来完成,然后注入调用者。

IOC 本质上是一个容器,已 MAP 对 IOC 简单举例,服务器加载配置文件,由 xml 文档 解析工具读取 bean 的 ID,获取 class,使用反射创建对象,以 K-V 的形式存入 MAP,K 是 ID, V 是反射创建的对象。获取对象可以调用 context.getBean(K)的方式。

3.介绍 spring 框架

它是一个 full-stack 框架,提供了从表现层到业务层再到持久层的一套完整的解决方案。我 们在项目中可以只使用 spring 一个框架,它就可以提供表现层的 mvc 框架,持久层的 Dao 框架。它的两大核心 IoC 和 AOP 更是为我们程序解耦和代码简洁易维护提供了支持。

4.Spring 常见创建对象的注解?

答:@Component@Controller@Service@Repository

5.Spring 中用到的设计模式

答:简单工厂、工厂方法、单例模式、适配器、包装器、代理、观察者、策略、模板方法 详细介绍自己查了。

6.Spring 的优点?

(1)降低了组件之间的耦合性,实现了软件各层之间的解耦

(2)可以使用容易提供的众多服务,如事务管理,消息服务等

(3)容器提供单例模式支持

(4)容器提供了 AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能

(5)容器提供了众多的辅助类,能加快应用的开发

(6)spring 对于主流的应用框架提供了集成支持,如 hibernate,JPA,Struts 等

(7)spring 属于低侵入式设计,代码的污染极低

(8)独立于各种应用服务器

(9)spring 的 DI 机制降低了业务对象替换的复杂性

(10)Spring 的高度开放性,并不强制应用完全依赖于 Spring,开发者可以自由选择 spring 的部分或全部

7.SpringBean 的作用域之间有什么区别?

Spring 容器中的 bean 可以分为 5 个范围。所有范围的名称都是自说明的,但是为了避 免混淆,还是让我们来解释一下:

singleton:这种 bean 范围是默认的,这种范围确保不管接受到多少个请求,每个容器 中只有一个 bean 的实例,单例的模式由 beanfactory 自身来维护。

prototype:原形范围与单例范围相反,为每一个 bean 请求提供一个实例。黑马程序员

request:在请求 bean 范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以 后,bean 会失效并被垃圾回收器回收。

Session:与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后, bean 会随之失效。

global-session:global-session 和 Portlet 应用相关。当你的应用部署在 Portlet 容器中工 作时,它包含很多 portlet。如果你想要声明让所有的 portlet 共用全局的存储变量的话,那 么这全局变量需要存储在 global-session 中。全局作用域与 Servlet 中的 session 作用域效果相同。

8.Spring 管理事务有几种方式?

答:有两种方式:

(1)编程式事务,在代码中硬编码。(不推荐使用)

(2)声明式事务,在配置文件中配置(推荐使用)声明式事务又分为两种:

a、基于 XML 的声明式事务

b、基于注解的声明式事务

9.spring 中自动装配的方式有哪些?

(1)No:即不启用自动装配。

(2)byName:通过属性的名字的方式查找 JavaBean 依赖的对象并为其注入。比如说类 Computer 有个属性 printer,指定其 autowire 属性为 byName 后,Spring IoC 容器会在配置文 件中查找 id/name 属性为 printer 的 bean,然后使用 Seter 方法为其注入。

(3)byType:通过属性的类型查找 JavaBean 依赖的对象并为其注入。比如类 Computer 有个属性 printer,类型为 Printer,那么,指定其 autowire 属性为 byType 后,SpringIoC 容 器会查找 Class 属性为 Printer 的 bean,使用 Seter 方法为其注入。

(4)constructor:通 byType 一样,也是通过类型查找依赖对象。与 byType 的区别在于 它不是使用 Seter 方法注入,而是使用构造子注入。

(5)autodetect:在 byType 和 constructor 之间自动的选择注入方式。

(6)default:由上级标签<beans>的 default-autowire 属性确定。

10.spring 中的核心类有那些,各有什么作用?

BeanFactory:产生一个新的实例,可以实现单例模式

BeanWrapper:提供统一的 get 及 set 方法

ApplicationContext:提供框架的实现,包括 BeanFactory 的所有功能

11.Bean 的调用方式有哪些?

答:有三种方式可以得到 Bean 并进行调用:

(1)使用 BeanWrapper

HelloWorld hw=new HelloWorld();

BeanWrapper bw=new BeanWrapperImpl(hw);

bw.setPropertyvalue(”msg”,”HelloWorld”);

System.out.println(bw.getPropertyCalue(”msg”));

(2)使用 BeanFactory

InputStream is=new FileInputStream(”config.xml”);

XmlBeanFactory factory=new XmlBeanFactory(is);

HelloWorld hw=(HelloWorld) factory.getBean(”HelloWorld”);

System.out.println(hw.getMsg());

(3)使用 ApplicationConttext

ApplicationContext actx=new FleSystemXmlApplicationContext(”config.xml”);

HelloWorld hw=(HelloWorld) actx.getBean(”HelloWorld”);

System.out.println(hw.getMsg());

12.什么是 IOC,什么又是 DI,他们有什么区别?

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读