关乎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功能的全部内容了,更多java面试常见问题,快关注奇Q工具网了解详情吧。
推荐阅读: