ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习之:spring

2021-02-28 16:57:39  阅读:175  来源: 互联网

标签:调用 Java spring 学习 通知 Spring IoC public 切面


spring是一个开源的、轻量级的 Java开发框架,它有两个核心:控制反转(IoC)和面向切面(AOP)。通过声明式方式, Java Spring框架可以灵活地管理事务,提高开发效率和质量。
Spring框架并不局限于服务器端。任何 Java应用都可以从 Spring的简单性、可测性和松耦合的角度来获得好处。SpringFramework也是一种超级粘合平台,它能够粘合其他技术和框架,以及自身的功能。

一、什么是控制反转?
控制反转模式的基本概念:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器(在Spring框架中是IoC容器)负责将这些联系在一起。Spring提供了两种IoC容器,分别为BeanFactory和ApplicationContext。

beanFactory是基于beanFactory接口定义的基础类型 IoC容器,它提供了完整的IoC服务支持。简而言之,BeanFactory是一个管理 Bean的工厂,主要负责对不同的 Bean进行初始化,并调用其生命周期方法。

ApplicationContext是BeanFactory的一个子接口,也叫ApplicationContext,它不仅提供了 BeanFactory的全部功能,而且在资源访问,事件传播等方面都提供了很好的支持。

二、什么是AOP?
AOP是面向切面编程,它将业务逻辑的各个部分分离开来,使开发人员在编写业务逻辑时能够集中处理核心业务,从而提高了开发效率。
它采用横向抽取机制,取代了传统纵向继承体系中重复编码的做法,其应用主要体现在事务处理、日志管理、权限控制、异常处理等方面。

AOP术语
切面(Aspect):要实现的交叉的非核心业务功能
连接点(Joinpoint):应用程序执行过程中插入切面的点,可以是方法调用,异常抛出
通知(Advice):通知切面的实际实现代码
切入点(Pointcut):定义通知应用在哪些连接点@Around(“execution(* com.project.service….(…))”)
目标对象:被通知的对象
代理:将通知应用到目标对象后创建的对象
织入:将切面应用到目标对象从而创建一个新的代理对象的过程

通知类型
前置通知Before:目标方法执行前调用
后通知After:目标方法执行后调用
返回后通知AfterReturning:目标方法正确执行后调用
环绕通知Around:目标方法执行前执行后都需要调用
抛出异常通知Throws:目标方法抛出异常时调用

三、spring三种注入方式
1)属性 setter 注入
指 IoC 容器使用 setter 方法注入被依赖的实例。通过调用无参构造器或无参 static 工厂方法实例化 bean 后,调用该 bean 的 setter 方法,即可实现基于 setter 的 DI。
public class Sport {
private InterfaceBall ball;
public void setBall(InterfaceBall arg) {
ball = arg;
}
}

2)构造方法注入
指 IoC 容器使用构造方法注入被依赖的实例。基于构造器的 DI 通过调用带参数的构造方法实现,每个参数代表一个依赖。
public class DIByConstructor {
private DataSource dataSource;
public DIByConstructor(DataSource ds) {
this.dataSource = ds;
}……
}

3)属性 setter 注入
public class ClassA {
private InterfaceB clzB;
public InterfaceB doSomething() {
Ojbect obj = Class.forName(
Config.BImplementation).newInstance();
clzB = (InterfaceB)obj;
return clzB;
}
}

四、使用spring的优点
1.Spring能有效地组织中间层对象
2Spring能消除在许多工程中常见的对Singleton的过多使用
3.Spring能消除各种各样自定义格式的属性文件的需要,使配置信息一元化
4.Spring能够帮助我们真正意义上事先针对接口编程
5.Spring支持JDBC和O/R Mapping产品(Hibernate)
6.Spring能使用AOP提供声明性事务管理,可以不直接操作JTA也能够对事务进行管理

标签:调用,Java,spring,学习,通知,Spring,IoC,public,切面
来源: https://blog.csdn.net/qq_35711567/article/details/114224955

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有