随笔分类 - Spring
摘要:Spring 使用增强类定义横切逻辑,同时由于 Spring 只支持方法连接点,增强还包括在方法的哪一点加入横切代码的方位信息,所以增强既包含横切逻辑,又包含部分连接点的信息。 1.增强类型 AOP 联盟为增强定义了 org.aopalliance.aop.Advice 接口,Spring 支持5种
阅读全文
摘要:Spring AOP 使用动态代理技术在运行期织入增强的代码,为了揭示 Spring AOP 底层的工作机理,有必要学习涉及的 Java 知识。Spring AOP 使用了两种代理机制:一种是基于 JDK 的动态代理;另一种是基于 CGLib 的动态代理。之所以需要两种代理机制,很大程度上是因为 J
阅读全文
摘要:编程语言的终极目标就是能以更自然、更灵活的方式模拟世界,从原始机器语言到过程语言再到面向对象语言,编程语言一步步地用更自然、更灵活的方式编写软件。AOP 是软件开发思想发展到一定阶段的产物,但 AOP 的出现并不是要完全替代 OOP,而仅作为 OOP 的有益补充。虽然 AOP 作为一项编程技术已经有
阅读全文
摘要:1.使用注解定义Bean 前面说过,不管是 XML 还是注解,它们都是表达 Bean 定义的载体,其实质都是为 Spring 容器提供 Bean 定义的信息,在表现形式上都是将 XML 定义的内容通过类注解进行描述。Spring 从2.0开始就引入了基于注解的配置方式,在2.5时得到了完善,在4.0
阅读全文
摘要:在配置文件中定义 Bean 时,用户不但可以配置 Bean 的属性值及相互之间的依赖关系,还可以定义 Bean 的作用域。作用域将对 Bean 的生命周期和创建方式产生影响。 每次从容器中调用 Bean 时,都返回一个新的实例,即每次调用 getBean() 时,相当于执行 new XxxBean(
阅读全文
摘要:Spring 不但可以通过 <ref> 引用另一个 Bean,建立起 Bean 和 Bean 之间的依赖关系,<bean> 元素标签之间也可以建立类似的关系,完成一些特殊的功能。 1.继承 OOP思想告诉我们,如果多个类拥有相同的方法和属性,则可以引入一个父类,在父类中定义这些类共同的方法和属性,以
阅读全文
摘要:无状态 Bean 的作用域一般可以配置为 singleton(单例模式),如果我们往 singleton 的 Boss 中注入 prototype 的 Car,并希望每次调用 boss Bean 的 getCar() 方法时都能够返回一个新的 car Bean,使用传统的注入方式将无法实现这样的要求
阅读全文
摘要:简化配置方式 Spring 为字面值、引用 Bean 和集合都提供了简化的配置方式。如果没有用到完整配置格式的特殊功能,用户大可使用简化的配置方式。下面分别为上面提及的配置内容给出简化前和简化后的版本。 1.字面值属性 <property name="maxSpeed"> <value>200</v
阅读全文
摘要:在 Spring 配罝文件中,用户不但可以将 String、int 等字面值注入 Bean 中,还可以将集合、Map 等类型的数据注入 Bean 中,此外还可以注入配置文件中其他定义的 Bean。 1.字面值 所谓 "字面值" 一般是指可用字符串表示的值,这些值可以通过 <value> 元素标签进行
阅读全文
摘要:Spring 支持两种依赖注入方式,分别是属性注入和构造函数注入。 除此之外,Spring 还支持工厂方法注入方式。 属性注入 属性注入指通过 setXxx() 方法注入 Bean 的属性值或依赖对象。由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入是实际应用中最常采用的注入方式。 1.
阅读全文
摘要:基于XML的配置 对于基于XML的配置,Spring 1.0的配置文件采用DTD格式,Spring2.0以后采用Schema格式,后者让不同类型的配罝拥有了自己的命名空间,使得配置文件更具扩展性。此外,Spring基于Schema 配置方案为许多领域的问题提供了简化的配置方法,配置工作因此得到了大幅
阅读全文
摘要:loC概述 loC(Inverse of Control,控制反转)是 Spring 容器的内核,AOP 、声明式事务等功能在此基础上开花结果。 loC 的字面意思是控制反转,它包括两方面的内容:一是控制,二是反转。那到底是什么东西的"控制"被"反转"了呢?对于软件来说,即某一接口具体实现类的选择控
阅读全文

浙公网安备 33010602011771号