1.IoC控制反转
解析:对象的控制权转移了,从开发人员转到对象容器了。
2.软件工程理论6大设计原则
解析:
[1]单一职责原则:不存在多于一个的因素导致类的状态发生变更,即一个类只负责一项单一的职责。
[2]里氏替换原则:基类出现的地方都可以用其子类进行替换,而不会引起任何不适应的问题。
[3]接口隔离原则:客户端不应该依赖于其不需要的接口,类间的依赖关系应该建立在最小的接口之上。
[4]迪米特法则:一个对象对其他对象有最少的了解。
[5]开闭原则:软件设计对于扩展是开放的,即模块的行为是可以扩展的。软件设计对于修改是关闭的,即模块的行为是不可修改的。
[6]依赖倒置原则:高层次的模块不应该依赖于低层次的模块,都应该依赖于抽象。
3.DI依赖注入
解析:Spring实现IoC容器的一种重要手段。依赖注入将对象间的依赖的控制权从开发人员转移到了容器,降低了开发成本。
4.控制反转、依赖倒置和依赖注入关系
解析:控制反转是一种软件设计模式,其遵循了软件工程中的依赖倒置原则;依赖注入是Spring框架实现控制反转的一种方式。
5.@RunWith
解析:这个注解指定了让单元测试运行于Spring的环境中。
6.@Service注解
解析:告诉Spring管理这个类的对象。
7.Spring注解实现IoC
解析:
[1]@Component将Java类标记成一个Spring Bean组件
[2]@Service将业务层实现类标记成一个Spring Bean组件
[3]@Controller将控制层类标记成一个Spring Bean组件
[4]@Repository将一个持久层实现类标记成一个Spring Bean组件
8.ApplicationContext接口
解析:ListableBeanFactory和HierarchicalBeanFactory这两个接口都继承了BeanFactory,ApplicationContext则继承了这两个接口,可以证明ApplicationContext接口是扩展了BeanFactory接口的。
9.BeanDefinition
解析:
[1]Spring就是通过BeanDefinition来管理各种JavaBean及JavaBean相互之间的依赖关系的。
[2]BeanDefinition抽象了开发人员对JavaBean的定义,Spring将开发人员定义的JavaBean的数据结构转化为内存中的BeanDefinition数据结构进行维护。
10.FileSystemXmlApplicationContext
解析:
[1]初始化父容器AbstractApplicationContext。
[2]设置资源文件的位置setConfigLocations。
[3]使用核心方法refresh(),其实是在超类AbstractApplicationContext中定义的一个模板方法。
11.IoC容器启动简易流程图
解析:
13.Bean各个生命周期的执行时序
解析:
[1]init-method:指定某个方法在Bean实例化完成,依赖关系设置结束后执行。
[2]destroy-method:指定某个方法在Bean销毁之前被执行。
[3]InitializingBean接口:指定在Bean实例化完成,依赖关系设置结束后执行[在init-method之前执行]。
[4]DiposableBean接口:指定某个方法在Bean销毁之前被执行[在destory-method之前执行]。
[5]ApplicationContextAware接口:在实例化Bean时,为Bean注入ApplicationContext。
[6]BeanNameAware接口:在实例化Bean时,为Bean注入beanName。
14.AOP将软件系统
解析:AOP将软件系统分为两部分:核心逻辑和横切逻辑。核心逻辑主要处理系统正常的业务逻辑,横切逻辑不关注系统核心逻辑,其只关注与系统核心逻辑并非强相关的逻辑。
15.Aspect切面
解析:切面就是对横切关注点的抽象,这个关注点可能会横切多个对象。
16.Spring AOP相关概念
解析:
[1]横切关注点:一些具有横切多个不同软件模块的行为,通过传统的软件开发方法不能够有效地实现模块化的一类特殊关注点。横切关注点可以对某些方法进行拦截,拦截后对原方法进行增强处理。
[2]切面:切面就是对横切关注点的抽象,这个关注点可能会横切多个对象。
[3]连接点:连接点是在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。由于Spring只支持方法类型的连接点,所以在SpringAOP中一个连接点总是表示一个方法的执行。
[4]切入点:切入点是匹配连接点的拦截规则,在满足这个切入点的连接点上运行通知。切入点表达式如何和连接点匹配是AOP的核心,Spring默认使用AspectJ切入点语法。
[5]通知:在切面上拦截到某个特定的连接点之后执行的动作。
[6]目标对象:目标对象,被一个或者多个切面所通知的对象,即业务中需要进行增强的业务对象。
[7]织入:织入是把切面作用到目标对象,然后产生一个代理对象的过程。
[8]引入:引入是用来在运行时给一个类声明额外的方法或属性,即不需为类实现一个接口,就能使用接口中的方法。
17.Spring AOP实现方式
解析:
[1]Spring AOP的实现方式有两种,分别是基于JDK动态代理的实现和基于CGLIB的动态代理实现。
[2]基于JDK动态代理的方式实现Spring AOP有两种方式,分别是基于XML配置的方式和注解的方式。
18.@Aspect、@Before和@After
解析:通过注解@Aspect用来声明其是切面,注解@Before用来表明前置通知,@After用来表明后置通知。
19.Spring增强类型
解析:Spring AOP按照增强在目标类方法中的连接点位置可以分为5种:
[1]前置增强:表示在目标方法执行前实施增强。
[2]后置增强:表示在目标方法执行后实施增强。
[3]环绕增强:表示在目标方法执行前后实施增强。
[4]异常抛出增强:表示在目标方法抛出异常后实施增强。
[5]引介增强:表示在目标类中添加一些新的方法和属性。
20.AspectJ框架
解析:AspectJ是一个面向切面的框架,其可以生成遵循Java字节码规范的Class文件。
21.Spring AOP和AscpectJ之间关系
解析:Spring使用了和AspectJ一样的注解,并使用AspectJ来做切入点解析和匹配。但是Spring AOP运行时并不依赖于AspectJ的编译器或者织入器等特性。
22.AspectJ注解
解析:在AspectJ中使用@Aspect注解来标示一个切面,使用@Pointcut注解标示切入点,各种通知类型通过@Before[前置通知]、@Around[环绕通知]、@AfterReturning[后置通知]和@AfterThrowing[异常通知]等注解来实现。
23.Spring中AspectJ切点指示器
解析:

24.代理对象
解析:ProxyFactoryBean,ProxyFactory和AspectJProxyFactory是用于创建AOP代理对象的,这三个类的作用分别如下:
[1]ProxyFactoryBean类:功能是创建声明式的代理对象。
[2]ProxyFactory类:功能是创建编程式的代理对象。
[3]AspectJProxyFactory类:功能是创建基于AspectJ的代理对象。
25.Sharding-JDBC
解析:Sharding-JDBC是开源的数据库中间件。Sharding-JDBC定位为轻量级数据库驱动,由客户端直连数据库,以jar包形式提供服务,没有使用中间层,无须额外部署,无须其他依赖。
参考文献:
[1]Spring5企业级开发实战
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91312 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!