使用BeanPostProcessor实现依赖注入的修正器

原创 2007年09月27日 15:34:00

 

如果我们想对一个bean的所有String类型的属性注入设置一个修正器,使其所有的注入内容均转换成大写,我们可以借助与Spring提供的 BeanPostProcessor接口

首先定义一个类,实现BeanPostProcessor接口,完成注入属性的大小写转换

 

public class UppercassModifier implements BeanPostProcessor...{
    
public Object postProcessBeforeInitialization(Object bean,String name) throws BeansException...{
       
//取得bean的field成员
       Field[] fields=bean.getClass().getDeclaredFields();
       
for(int i=0;i<fields.lengtj;i++)...{
          
//针对string类型的field成员加以修正
          if(fields[i].getType().equals(String.class))...{
              fiels[i].setAccessible(
true);
              
try...{
                   String orginal
=(String)field[i].get(bean);
                   field[i].set(bean,orginal.toUpperCase());
              }
catch(Exception e)...{
              }

          }

       }

      
return bean;
    }


}

 

spring bean

public class HelloBean...{

   
private String helloworld;
   setter
/getter方法
}

 

配置文件

 

<bean id="uppercaseModifier" class="demo.UppercaseModifier"/>

<bean id="helloBean" class="demo.HelloBean">
   
<property name="helloworld" value="Hello"/>
</bean>

 

测试后,注入的Hello会自动转换成HELO

Spring-依赖注入之构造器方式注入

构造器注入-带有参数的构造函数注入 项目结构如下: 1、新建第一个bean文件 PersonServiceBean.java: /* *@Author swxctx *@time 2016年9...
  • qq_28796345
  • qq_28796345
  • 2016年09月27日 18:37
  • 1136

【spring】BeanPostProcessor使用场景之@Autowired

在BeanPostProcessor简介中我们简单的介绍了InstantiationAwareBeanPostProcessor中的一些方法,简单的来说,在bean实例化之前会调用postProces...
  • summer_thirtyOne
  • summer_thirtyOne
  • 2016年07月06日 15:46
  • 1176

使用BeanPostProcessor接口对受管Bean进行预处理

有时候,我们希望在Spring IoC容器初始化受管Bean之前、属性设置之后对该Bean先做一些预处理,或者在容器销毁受管Bean之前自己释放资源。那么该如何实现呢?Spring IoC为我们提供了...
  • xuechongyang
  • xuechongyang
  • 2013年12月30日 16:29
  • 1161

BeanPostProcessors使用总结

1、BeanPostProcessors接口 如果这个接口的某个实现类被注册到某个容器,那么该容器的每个受管Bean在调用初始化方法之前,都会获得该接口实现类的一个回调。容器调用接口定义的方法时会将...
  • HEYUTAO007
  • HEYUTAO007
  • 2015年11月03日 20:29
  • 5081

Spring - BeanPostProcessor接口(后处理器)讲解

概述: BeanPostProcessor接口是众多Spring提供给开发者的bean生命周期内自定义逻辑拓展接口中的一个,其他还有类似InitializingBean,DisposableBean...
  • Fanti_Chan
  • Fanti_Chan
  • 2015年11月17日 10:38
  • 1233

依赖注入的三种实现形式

什么是控制反转/依赖注入? 控制反转(IoC=Inversion of Control)IoC,用白话来讲,就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。这也就是所谓“控...
  • zhang1206214477
  • zhang1206214477
  • 2015年06月21日 00:14
  • 5894

IOC,依赖倒置 (理解) Spring依赖注入的实现技术是:动态代理

所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B。 所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是A...
  • chentao866
  • chentao866
  • 2017年05月05日 09:14
  • 397

《玩转Spring》第二章 BeanPostProcessor扩展

上一章,介绍了如何扩展spring类实现自动读取配置文件。 这一章,我们介绍如何通过实现BeanPostProcessor接口,对容器中的Bean做一层代理,来满足我们的个性化需求。 一、基本原理...
  • shan9liang
  • shan9liang
  • 2014年06月25日 10:53
  • 9652

Spring中BeanPostProcessor与InitializingBean接口的关系与应用

简介 在Spring框架中,bean的定义,从编写到配置再到最终的getbean调用,框架都有相应的实现规则,具体如下所述。 bean的定义 package com.spring.beans; im...
  • dreamwbt
  • dreamwbt
  • 2017年06月23日 15:47
  • 906

1.2.3依赖注入容器

【2017.12.30: 1.原博客 依赖注入(Dependency Injection)模式 大概的意思有,写得较垃圾:不流畅,例子不好。 2.不再将DI称为一种模式,而仅仅视为工具箱;强调 依...
  • yqj2065
  • yqj2065
  • 2013年01月16日 16:39
  • 24934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用BeanPostProcessor实现依赖注入的修正器
举报原因:
原因补充:

(最多只允许输入30个字)