Spring入门(二)

2017-04-22  本文已影响0人  曹达兴

Spring表达式语言(简称SpEL):是一个支持运行时查询和操作图的强大的表达式语言

语法类似EL:SpEL使用${...}作为界定符,所有在大括号中的字符都将被认为是SpEL

通过SpEL可以实现:

通过bean的id对bean进行引用

调用方法以及引用方法中的属性

计算表达式的值

正则表达式的匹配

SpringIOC容器对Bean的生命周期进行管理的过程:

通过构造器或工厂方法创建Bean 实例

为Bean的属性设置值和对其他Bean的引用

调用Bean的初始化方法

Bean可以使用了

当容器关闭时,调用Bean的销毁方法

在Bean的声明里设置init-method和destroy-method属性,为Bean指定初始化和销毁方法

Bean后置处理器允许在调用初始化方法前后对Bean进行额外的处理

Bean后置处理器对IOC容器里所有的Bean实例逐一处理。而非单一实例。

实现方法:

创建一个实现某个java接口的类,实现其中的两个方法

在Spring IOC中配置Bean


通过工厂方式配置bean

静态工厂方法:直接调用某一个类的静态方法就可以返回bean的实例

class属性:指向静态工厂方法的全类名

factory-method:指向静态工厂方法的名字

 constructor-arg:如果工厂方法需要传入参数,则使用

实例工厂方法:实例工厂的方法,即先需要创建工厂本身,再调用工厂的实例方法

factory-bean属性:指向实例工厂方法的bean

factory-method:指向静态工厂方法的名字

constructor-arg:如果工厂方法需要传入参数,则使用

通过FactoryBean配置Bean

自定义的FactoryBean需要实现FactoryBean接口

在配置文件中,通过FactoryBean来配置Bean的

class:指向FactoryBean的全类名

property:配置FactoryBean的属性

但实际返回的却是FactoryBean的getObject()方法返回的实例


通过注解配置bean

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

特定组件包括:

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

@Responsitary:标识持久层组件

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

@Controller:标识表示层组件

Spring有默认的命名策略

也可以在注解中通过value属性标识组件的名称

context:exclude-filter 子节点排除哪些指定表达式的组件

context:include-fiter  子节点指定包含哪些表达式的组件,该子节点需要use-default-fiters配合使用

指定Spring容器扫描的包:

<context:component-scan base-package="包名">Spring会扫描这个基类包里及其子包里的所有类

<context:component-scan>元素还会自动注册AutowiredAnnotationBeanPostProcessor实例,该实例可以自动装配具有@Autowired和@Resourse、@Inject注解的属性
















上一篇下一篇

猜你喜欢

热点阅读