网站建设主机的功能,网站建设一条龙服务,中美关系最新消息新闻,手机网站接入微信登录第四章 IoC容器 4.1 IoC概述 IoC#xff08;Inverse of Control 控制反转#xff09;#xff0c;控制是指接口实现类的选择控制权#xff0c;反转是指这种选择控制权从调用类转移到外部第三方类或容器的手中。 也就是由Spring容器借由Bean配置来进行控制。 DI#xff08;D… 第四章 IoC容器 4.1 IoC概述 IoCInverse of Control 控制反转控制是指接口实现类的选择控制权反转是指这种选择控制权从调用类转移到外部第三方类或容器的手中。 也就是由Spring容器借由Bean配置来进行控制。 DIDependency Injection 依赖注入让调用类的某一接口实现类的依赖关系由第三方容器注入以移除调用类对某一接口实现类的依赖。 由于IoC的概念不太好理解所以用DI这个概念来代替IoC。 第三方容器 它帮助完成类的初始化和装配工作让开发者从这些底层实现类的实例化、依赖关系装配等工作中解脱出来专注于更有意义的业务逻辑开发工作。 Spring容器通过配置文件或注解描述类与类之间的依赖关系自动完成类的初始化和依赖注入工作。 4.4 BeanFactory和ApplicationContext 第五章 在IoC容器中装配Bean 在实际应用中大部分Bean都能以单实例的方式运行所以Spring将Bean的默认作用域定位singleton。 默认下ApplicationContext容器在启动时自动实例化所有singleton的Bean并缓存于容器中。 采用scope“prototype”指定非单例作用域的Bean。 使用注解定义Bean 自动装配Bean AutoWired默认按类型匹配的方式在容器中查找匹配的Bean。 如果希望Spring即使找不到匹配的Bean完成注入也不要抛出异常那么可以使用AutoWiredrequiredfalse进行标注。 如果容器中有一个以上匹配的Bean时则可通过Qualifier注解限定Bean的名称。如Qualifier(baseDao)。 虽然Spring支持在属性和方法上标注AutoWired但实际开发中建议在方法上标注AutoWired因为这样更加面向对象也方便单元测试的编写。 延迟依赖注入 Spring4.0支持在Bean上标注LazyAutoWired不会立即注入属性而是延迟到调用此属性时才注入属性。 对标准注解的支持 Resource和Inject这两个注解和AutoWire类似。 Resource默认按名称匹配注入Bean要求提供一个Bean名称的属性如果属性为空则自动采用标注处的变量名或方法名作为Bean的名称。 Inject和AutoWire同样也是按类型匹配注入Bean的只不过没有required属性。 Bean的作用范围 第七章 Spring AOP基础 AOPAspect Oriented Programing 面向切面编程 无法通过抽象父类的方法消除重复的横切代码因为横切逻辑依附在业务类方法的流程中不能转移到其他地方去。 AOP将这些分散在各个业务逻辑代码中的相同代码通过横向切割的方式抽取到一个独立的模块中。 当某个方法需要进行性能监测时要在业务代码的前后加上开启/关闭性能监测的代码。这些非业务逻辑代码破坏了业务逻辑的纯粹性。 我们希望通过代理的方式将性能监测的横切代码从业务类中完全移除并通过动态代理技术将横切代码动态织入目标方法的相应位置。 连接点和切点 连接点是程序执行的某个特定位置如类初始化前类初始化后方法调用前方法调用后。 连接点相当于数据库中的记录切点相当于查询条件一个切点可以匹配多个连接点。 增强Advice 增强既包含用于添加到目标连接点上的一段执行逻辑又包含用于定位连接点的方位信息。 增强接口如BeforeAdvice、AfterReturningAdvice 织入 织入是将增强添加到目标类的具体连接点上的过程。 Spring采用动态代理织入而AspectJ采用编译期织入和类装载期织入。 切面Aspect 切面由切点和增强组成Spring AOP是负责实施切面的框架它将切面所定义的横切逻辑织入切面所指定的连接点中。 增强类型 前置增强BeforeAdvice在目标方法执行前实施增强。 后置增强AfterReturningAdvice在目标方法执行后实施增强。 环绕增强MethodInterceptor在目标方法执行前后实施增强。 异常抛出增强ThrowsAdvice在目标方法抛出异常后实施增强。 引介增强IntroductionInterceptor在目标类中添加一些新的方法和属性。 切面类型 Advisor一般切面仅包含一个Advice它代表的横切的连接点是所有目标类的所有方法太宽泛一般不用。 PointcutAdvisor具有切点的切面可以通过类、方法名、方法方位等信息灵活定义切面的连接点。 IntroductionAdvisor引介切面对应引介增强的特殊切面应用于类层面上。 Spring采用JDK动态代理和CGLib动态代理技术在运行期织入增强。 Spring只能在方法级别上织入增强。 第八章 基于AspectJ和Schema的AOP 注解版增强类型 Before前置增强 AfterReturning后置增强 Around环绕增强 AfterThrowing抛出增强 AfterFinal增强不管抛出异常还是正常退出该增强都会得到执行 DeclareParents引介增强 第十一章 Spring的事务管理 Spring允许通过声明方式在IoC配置中指定事务的边界和事务属性Spring自动在指定的事务边界上应用事务属性。 Spring的声明式事务管理是通过SpringAOP实现的。 如果使用Spring JDBC和My Batis可以使用DataSource TransactionManager这个基于数据源的事务管理器。 Spring通过模板类降低了开发者使用各种数据持久化技术的难度。 模板类需要绑定数据连接或会话的资源这些资源是非线程安全的。 Spring使用ThreadLocal解决线程安全的问题。 Spring事务传播行为 Spring默认的事务回滚规则为运行期异常回滚检查型异常不回滚。 使用注解配置声明式事务 使用Transactional对类或方法进行事务增强的标注。 在配置文件中加入tx:annotation-driven transaction-managertxManager/,对标注Transactional的Bean进行加工处理以织入事务管理切面。 第十七章 Spring MVC 转载于:https://www.cnblogs.com/mengchunchen/p/9798525.html