spring提供了哪些功能?

TheDisguiser 2020-07-08 22:20:32 java常见问答 8523

关乎spring应该很少有程序员不知道的,在如今的互联网时代,如果想要掌握java,spring是一定要学习的,小伙伴们知道spring都提供了哪些功能吗?这里就来了解了解吧。

一、极致简化开发

1、基于pojo的轻量级和最小侵入性编程

2、通过依赖注入和面向接口实现松耦

3、基于切面和惯例进行声明式编程

4、通过切面和模板减少样板式代码

二、Spring核心容器

容器是spring框架最核心的部分,管理着Spring应用中bean的创建、配置和管理。

三、 Spring AOP模块

spring两个核心技术

1,DI依赖注入

DI主要解决了在类和类之间有依赖

关系的时候,如何通过注入的方式

(属性注入、构造器注入)形成松耦合

2,AOP面向切面编程

考虑如何把散落在应用中多处相

同的功能剥离出来,使得这些剥

离出来的逻辑与业务逻辑相分离的问题。

AOP实现之动态代理

1,代理模式的概念

为其他对象提供一种代理,以控制对这

个对象的访问。换句通俗的话来说,它

是一种使用代理对象来执行目标对象的

方法,并在代理对象中增强目标对象方

法的一种设计模式

生活中:中介、微商

2,代理模式的好处

a>中介隔离

在调用方(`Caller`)不能或不想直接与

目标对象(`Target`)打交道的时候,

代理对象(`Proxy`)可以起到两者之间中介的作用

生活中:买家直接跟中介联系,省心省事

b>开闭原则

我们可以通过给代理对象增加新的功能来

扩展目标对象的功能,这样我们只需要修

改代理类,而不需要修改目标类,符合代

码设计的OCP原则(`Open Closed Principle`

,对扩展是开放的,对修改是关闭的)。

生活中:业务类和dao层的关系

3,代理模式的类型

a>静态代理

由程序员或者特定工具生成源代码来产生代理对象

。在程序运行前,代理类的字节码文件(.class)

就已经存在了

理解:dao提供数据库操作方法,然后编写业务层

案例:买家-中介-卖家

b>动态代理

在程序运行期间,运用反射机制、

字节码生成技术来产生代理类和实例。

1>jdk动态代理

a>调用处理器(实现InvocationHandler)

b>Proxy.newProxyInstance(参数...)得到代理接口

2>cglib动态代理

a>回调处理器(实现MethodInterceptor)

b>使用

四、数据访问与集成

Spring的JDBC和DAO(Data Access Object)模块抽象了JDBC的样板式代码,使数据库代码更加简单明了。除了JDBC,Spring还提供了对于ORM(Object-Relational Mapping)的支持,可以集成众多流行的ORM框架,包括MyBatis、Hibernate、JPA等。

五、 Web与远程调用

可与多种流程的MVC框架集成,同时Spring也自带了一个强大的MVC框架。

六、Instrumentation

提供了为JVM添加代理的功能(较少使用)

功能图:

spring提供了哪些功能

以上就是关于spring功能的全部内容了,更多java面试常见问题,快关注奇Q工具网了解详情吧。

推荐阅读:

spring ioc注入的三种方式是什么?详解

springsession原理详解,实现原理介绍

spring ioc注解,常用注解大全