![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring 核心技术
yxpcc
这个作者很懒,什么都没留下…
展开
-
5.10。在Spring应用程序中使用AspectJ【spring 核心技术 翻译】
5.10。在Spring应用程序中使用AspectJ到目前为止,我们在本章中讨论的所有内容都是纯粹的Spring AOP。在本节中,我们将介绍如果您的需求超出了Spring AOP单独提供的功能,那么如何使用AspectJ编译器或weaver来代替Spring AOP,或者在Spring AOP之外使用它。Spring附带了一个小的AspectJ方面库,它在您的发行版中作为Spring-aspect .jar独立提供。您需要将其添加到类路径中,以便在其中使用切面。使用AspectJ向Spring和Asp翻译 2020-07-16 14:30:00 · 572 阅读 · 0 评论 -
5.9。通过编程创建@AspectJ代理 【spring 核心技术 翻译】
5.9。通过编程创建@AspectJ代理除了使用<aop:config>或<aop:aspectj-autoproxy>在配置中声明方面之外,还可以通过编程方式创建通知目标对象的代理。有关Spring的AOP API的完整细节,请参阅下一章。在这里,我们希望关注通过使用@AspectJ aspect自动创建代理的能力。可以使用org.springframework.aop.aspectj.annotation.AspectJProxyFactory类创建由一个或多个@Aspect翻译 2020-07-16 11:05:49 · 103 阅读 · 0 评论 -
5.8。代理机制 【spring 核心技术 翻译】
5.8。代理机制Spring AOP使用JDK动态代理或CGLIB为给定的目标对象创建代理。JDK动态代理构建在JDK中,而CGLIB是一个通用的开源类定义库(重新打包到spring-core中)。如果要代理的目标对象实现至少一个接口,则使用JDK动态代理。由目标类型实现的所有接口都被代理。如果目标对象没有实现任何接口,则创建一个CGLIB代理。如果您想强制使用CGLIB代理(例如,代理为目标对象定义的每个方法,而不仅仅是由其接口实现的方法),您可以这样做。不过,你应该考虑以下问题:使用CGLIB翻译 2020-07-16 11:03:36 · 126 阅读 · 0 评论 -
5.7。混合类型切面
5.7。混合类型切面通过使用自动代理支持、模式定义的<aop:aspect>方面、<aop:advisor>声明的通知、甚至在相同配置中其他风格的代理和拦截器,完全有可能混合使用@AspectJ风格的方面。所有这些都是通过使用相同的底层支持机制实现的,并且可以毫无困难地共存。...翻译 2020-07-16 10:16:45 · 78 阅读 · 0 评论 -
5.6。选择要使用的AOP声明风格 【spring 核心技术 翻译】
5.6。选择要使用的AOP声明风格一旦您确定了一个方面是实现给定需求的最佳方法,那么如何在使用Spring AOP或AspectJ以及在方面语言(代码)风格、@AspectJ注释风格和Spring XML风格之间做出选择呢?这些决定受到许多因素的影响,包括应用程序需求、开发工具和团队对AOP的熟悉程度。5.6.1。Spring AOP还是Full AspectJ?使用最简单的方法。Spring AOP比使用完整的AspectJ更简单,因为不需要在开发和构建过程中引入AspectJ编译器/ weaver翻译 2020-07-16 10:15:45 · 97 阅读 · 0 评论 -
5.4。@Aspectj的支持 【spring 核心技术 翻译】
5.4。@Aspectj的支持@AspectJ引用了一种将方面声明为带有注释的常规Java类的样式。@AspectJ样式是由AspectJ项目作为AspectJ 5发行版的一部分引入的。Spring使用AspectJ提供的用于切入点解析和匹配的库来解释与AspectJ 5相同的注释。然而,AOP运行时仍然是纯粹的Spring AOP,并且不依赖于AspectJ编译器或weaver。使用AspectJ编译器和weaver可以使用完整的AspectJ语言,在与Spring应用程序一起使用AspectJ中对此进翻译 2020-07-16 10:01:40 · 342 阅读 · 0 评论 -
5. 使用Spring进行面向切面编程【spring 核心技术 翻译】
面向方面程序设计(AOP)通过提供另一种考虑程序结构的方法来补充面向对象程序设计(OOP)。OOP中模块性的关键单元是类,而AOP中模块性的单元是方面。方面支持跨多个类型和对象的关注点(如事务管理)的模块化。(在AOP文献中,这样的关注点通常被称为“横切”关注点。)Spring的关键组件之一是AOP框架。虽然Spring IoC容器不依赖于AOP(这意味着如果您不想使用AOP,就不需要使用AOP),但AOP对Spring IoC进行了补充,提供了一个非常强大的中间件解决方案。带有AspectJ切入点的S翻译 2020-07-15 16:30:50 · 182 阅读 · 0 评论 -
1.16 BeanFactory【spring 核心技术 翻译】
1.16 BeanFactoryBeanFactory API为Spring的IoC功能提供了底层基础。它的特定契约主要用于与Spring的其他部分和相关的第三方框架的集成,它的DefaultListableBeanFactory实现是高级别的GenericApplicationContext容器中的一个关键委托。BeanFactory和相关接口(如BeanFactoryAware、InitializingBean、DisposableBean)是其他框架组件的重要集成点。由于不需要任何注释甚至反射,它们翻译 2020-07-15 15:44:57 · 93 阅读 · 0 评论 -
1.15。ApplicationContext的附加功能 【spring 核心技术 翻译】
1.15。ApplicationContext的附加功能正如在引言中所讨论的,org.springframework.beans.factory 包提供了管理和操作bean的基本功能,包括以编程的方式。org.springframework.context 包添加了ApplicationContext接口,它扩展了BeanFactory接口,此外还扩展了其他接口,以更面向应用程序框架的风格提供额外的功能。许多人以一种完全声明式的方式使用ApplicationContext,甚至不是通过编程来创建它,而是依翻译 2020-07-14 23:56:06 · 614 阅读 · 0 评论 -
1.14。注册一个LoadTimeWeaver 【spring 核心技术 翻译】
1.14。注册一个LoadTimeWeaver当类装入Java虚拟机(JVM)时,Spring使用LoadTimeWeaver动态地转换类。要启用加载时编织,可以将@EnableLoadTimeWeaving织造添加到一个@Configuration类中,如下面的示例所示:@Configuration@EnableLoadTimeWeavingpublic class AppConfig {}或者,对于XML配置,您可以使用<context:load-time-weaver>元素翻译 2020-07-14 10:05:35 · 190 阅读 · 0 评论 -
1.13。环境抽象 【spring 核心技术 翻译】
1.13。环境抽象环境接口是集成在容器中的抽象,它为应用程序环境的两个关键方面建模: profiles 和 properties。profiles文件是一个命名的bean定义逻辑组,只有在给定的概要文件处于活动状态时才向容器注册。bean可以被分配给一个配置文件,无论这个配置文件是用XML定义的还是用注释定义的。与概要文件相关的Environment对象的作用是确定哪些概要文件(如果有的话)当前处于活动状态,以及默认情况下哪些概要文件(如果有的话)应该处于活动状态。properties在几乎所有的应用翻译 2020-07-13 16:33:49 · 122 阅读 · 0 评论 -
1.12。基于java的容器配置【spring 核心技术 翻译】
1.12。基于java的容器配置1.12.1。基本概念:@Bean和@Configuration本节介绍如何在Java代码中使用注释来配置Spring容器。它包括以下主题:Spring新的java配置支持中的核心构件是@configuration注释的类和@bean注释的方法。@Bean注释用于指示方法实例化、配置和初始化将由Spring IoC容器管理的新对象。对于那些熟悉Spring的 XML配置的人来说,@Bean注释扮演着与元素相同的角色。您可以对任何Spring @Component使用@翻译 2020-07-12 22:33:15 · 156 阅读 · 0 评论 -
1.11。使用JSR 330标准注释【spring 核心技术 翻译】
1.11。使用JSR 330标准注释从Spring 3.0开始,Spring提供了对JSR-330标准注解(依赖注入)的支持。这些注释的扫描方式与Spring注释相同。要使用它们,您需要在类路径中包含相关的jar。如果你使用Maven, javax。注入工件在标准Maven存储库中可用(https://repo1.maven.org/maven2/javax/inject/javax.inject/1/)。你可以添加以下依赖到你的文件pom.xml:<dependency> <翻译 2020-07-12 15:44:50 · 107 阅读 · 0 评论 -
1.10 扫描classPath 和 组件管理【spring 核心技术 翻译】
1.10 扫描classPath 和 组件管理本章中的大多数示例使用XML指定在Spring容器中生成每个BeanDefinition的配置元数据。上一节(基于注释的容器配置)演示了如何通过源代码级注释提供大量配置元数据。然而,即使在这些示例中,“基本”bean定义也显式地定义在XML文件中,而注释仅驱动依赖项注入。本节描述通过扫描类路径隐式检测候选组件的选项。候选组件是与筛选标准匹配的类,并有相应的bean定义注册到容器中。这样就不需要使用XML来执行bean注册。相反,您可以使用注释(例如@Compo翻译 2020-07-12 15:34:52 · 139 阅读 · 0 评论 -
1.9 基于注解的容器配置 【spring 核心技术 翻译】
在配置Spring时,注释比XML更好吗?基于注释的配置的引入提出了这样一个问题:这种方法是否比XML“更好”。简短的回答是“视情况而定”。长话短说,每种方法都有其优缺点,通常由开发人员决定哪种策略更适合他们。由于其定义方式,注释在其声明中提供了大量上下文,从而使配置更短、更简洁。但是,XML擅长在不修改源代码或重新编译组件的情况下连接组件。一些开发人员倾向于让连接靠近源,而另一些人则认为带注释的类不再是pojo,而且配置变得分散且更难控制。无论选择,spring可以容纳两种风格,甚至混合在一起。值翻译 2020-07-12 15:49:05 · 118 阅读 · 0 评论