Spring4基础知识(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Delicious_Life/article/details/88907057

目录

P命名空间

XML文件中Bean的自动装配

继承Bean配置

依赖Bean配置

Spring表达式语言:SpEL

扫描组件

AOP简介

AOP术语


P命名空间

为了简化 XML文件的配置,越来越多的XML文件采用属性而非子元素配置信息。p命名空间可以通过<bean>元素属性的方式配置Bean的属性。

XML文件中Bean的自动装配

Spring IOC容器可以自动装配Bean,只需要在<bean>的autowire属性里指定自动装配的模式。

byType:根据类型自动装配,缺点是当ioc中有多个类型一致的Bean,Spring无法判断哪个Bean是最合适该属性的,不能执行自动装配。

byName:根据名称自动装配,必须将目标Bean的名称和属性名设置的完全相同

自动装配的缺点:

1.autowire属性进行自动装配的时候会装配所有Bean的属性,不够灵活

2.autowire属性要么根据类型自动装配,要么根据名称自动装配,不能二者兼而有之。

3.实际项目中很少用自动装配功能,因为清晰的配置文档比自动装配更有说服力。

继承Bean配置

Spring允许继承bean的配置。子Bean从父Bean中继承配置,包括Bean的属性配置。 子bean可以覆盖父bean。父Bean可以设置为模板,通过设置<bean>的abstract属性为true。并不是<bean>元素里的所有属性都会被继承。

依赖Bean配置

Spring允许用户通过depends-on属性设置Bean前置依赖的Bean,如果前置依赖于多个Bean,则可以通过逗号,空格的方式配置Bean的名称。

Spring表达式语言:SpEL

即Spring表达式语言,是一个支持运行时查询和操作对象图的强大的表达式语言。语法使用#{...}作为定界符,所有在大括号中的字符都被认为时SpEL。SpEL为bean的属性进行动态赋值提供了便利 

扫描组件

Spring能够从classpath下自动扫描,侦测和实例化居右特定注解的组件。

特定组件包括:

@Component:基本注解,标识了一个受Spring管理的组件

@Respository:标识持久层组件

@Service:标识服务层(业务层)组件

@Controller:标识表现层组件

AOP简介

即面向切面编程。主要编程对象是切面,而切面模块化横切关注点。

AOP编程中仍需要定义公共功能,但是可以明确的定义这个功能在哪里,以什么方式应用,并且不必修改受影响的类,这样一来横切关注点就被模块化到特殊的对象(切面)里。

AOP的好处:1.每个事物逻辑位于一个位置,代码不分散,便于维护和升级。2.业务模块更简洁,只包含核心业务代码。

AOP术语

切面:横切关注点被模块化的特殊对象。

通知:切面必须要完成的工作。

目标:被通知的对象

代理:向目标对象应用通知之后创建的对象

连接点:程序执行的某个特定位置

切点:通过切点定义到连接点

连接点和切点的比较:连接点好比数据库中的记录,切点相当于查询条件。

猜你喜欢

转载自blog.csdn.net/Delicious_Life/article/details/88907057