1、使用BeanPostProcessor对Bean中的方法进行增强。
则可以在save方法执行之前进行一些处理。
2、spring的属性注入
对于类成员变量,注入方式有三种
– 构造函数注入
– 属性setter方法注入
– 接口注入
• Spring支持前两种
-
通过构造方法注入Bean 的属性值或依赖的对象,它保证了 Bean 实例在实 例化后就可以使用。
-
构造器注入在 <constructor-arg> 元素里声明的属性
-
使用set方法注入,在Spring配置文件中,通过<property>设置注入的 属性
-
下图:使用set方法注入(value注入普通的属性,ref注入对象类型的属性)
Spring的属性注入-p名称空间
• 使用p命名空间
• 为了简化XML文件配置,Spring从2.5开始引入一个新的p名称空间
-
p:<属性名>="xxx" 引入常量值
-
p:<属性名>-ref="xxx" 引用其它Bean对象
Spring的属性注入-SpEL注入(当属性的注入过于复杂时可考虑使用SpEL注入)
调用另一个bean中的方法获取值。
复杂数据类型的注入值
3、注解方式,开启组件扫描
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- bean definitions here -->
<!--开启组件扫描-->
<context:component-scan base-package="com.imooc.ioc" />
</beans>
普通类型使用@Value,对象类型的注入使用@Autowired 按照类型自动注入
通过@Autowired的required属性,找到匹配的bean,使用@Quelifier指定名称
使用@Resource,相当于使用了@Autowired和@Qualifier
4、Spring的其他注解
5、作用域
6、传统XML方式和注解方式配合使用
传统xml方式:
改进:xml来管理类,属性呢,通过注解的方式进行管理。