```javapackage com.ihrm.system.utils;import org.springframework.beans.BeanUtils;import org.springframework.beans.BeanWrapper;import org.springframework.beans.BeanWrapperImpl;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import java.util.HashSet;import java.util.Set;publicclassSpringUtilimplementsApplicationContextAware{/**
* 当前IOC
*
*/privatestatic ApplicationContext applicationContext;/**
* * 设置当前上下文环境,此方法由spring自动装配
*
*/
@OverridepublicvoidsetApplicationContext(ApplicationContext arg0)
throws BeansException{
applicationContext= arg0;}/**
* 从当前IOC获取bean
*
* @param id
* bean的id
* @return
*
*/publicstatic ObjectgetObject(String id){
Object object=null;
object= applicationContext.getBean(id);return object;}publicstatic String[]getNullPropertyNames(Object source){
final BeanWrapper src=newBeanWrapperImpl(source);
java.beans.PropertyDescriptor[] pds= src.getPropertyDescriptors();
Set<String> emptyNames=newHashSet<String>();for(java.beans.PropertyDescriptor pd: pds){
Object srcValue= src.getPropertyValue(pd.getName());if(srcValue==null) emptyNames.add(pd.getName());}
String[] result=newString[emptyNames.size()];return emptyNames.toArray(result);}publicstaticvoidcopyPropertiesIgnoreNull(Object src, Object target){
BeanUtils.copyProperties(src, target,getNullPropertyNames(src));}}
忘了从哪个博主抄来的了,挺好用反正
测试实体
```java
package com.ihrm.system.utils;
public class aa {
private String name;
private String age;
public aa() {
}
public aa(String name, String age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
@Override
public String toString() {
return "aa{" +
"name='" + name + '\'' +
", age='" + age + '\'' +
'}';
}
}
package com.ihrm.system.utils;publicclasstest{publicstaticvoidmain(String[] args){
aa news=newaa();
news.setName("1");
news.setAge("2");
aa old=newaa();
old.setName("2");
old.setAge("3");
SpringUtil.copyPropertiesIgnoreNull(news, old);
System.out.println(news.toString());
System.out.println(old.toString());}}
自己运行就行看出效果了