Spring的后置处理器

        先来讲一下junit配置spring进行单元测试,因为我们的demo就是在这种环境下测试的.

        首先用maven引入两个依赖

        

<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>
		
		<dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>4.1.3.RELEASE</version>  
            <scope>provided</scope>  
		</dependency>

   然后写个基类用来加载配置文件

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:spring/*.xml","classpath:mybatis/*.xml"})
public class TestSpring {
	
}

然后我们的类直接继承该类就可以了

public class Demo extends TestSpring{
	@Autowired
	private RegisterService registerService;
	
	@Test
	public void test(){
		String name="zhangsan";
		String password="aaa";
		System.out.println(registerService.regist(name, password));
	}
}

然后开始讲我们的spring的后置处理器,后置处理器可以在bean初始化之前和之后做一些额外的处理,不多说了,贴代码

package com.xj.mvc.beanpostprocessor;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;

public class MyBeanPostProcessor implements BeanPostProcessor{

	@Override
	public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
		System.out.println("spring后置处理器再对象初始化后");
		return bean;
	}

	@Override
	public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
		System.out.println("spring后置处理器在对象初始化前");
		return bean;
	}
	
}

这里需要注意一下,最后一定要将bean返回,不然后面就没法儿使用了.

<bean id="myBeanPostProcessor" class="com.xj.mvc.beanpostprocessor.MyBeanPostProcessor"></bean>

然后就可以看到

spring后置处理器在对象初始化前
[org.springframework.beans.factory.config.PropertiesFactoryBean] - Loading properties file from class path resource [log4j.properties]
spring后置处理器再对象初始化后
就是这样了,是不是很简单,其实只是给我们提供一个可以额外处理bean的一种方式而已.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值