美文网首页
Java 反射获取单例实例对象

Java 反射获取单例实例对象

作者: CaliforniaSunsh | 来源:发表于2019-04-12 12:01 被阅读0次

try {

String className ="className";

    Class clazz = SpringUtil.getBean(className).getClass();

    Method method = clazz.getDeclaredMethod("methodName",Class<T>  params...);

//每次从Spring容器中获取实例对象,不要使用clazz.newInstance(),就可以保证每次获取的对象是同一个实例对象

    return method.invoke(SpringUtil.getBean(className), params...);

}catch (NoSuchMethodException e) {

log.info("获取指定方式失败:{}", e.getMessage());

}catch (IllegalAccessException e) {

log.info("反射调用方法参数错误:{}", e.getMessage());

}catch (InvocationTargetException e) {

log.info("反射调用方法InvocationTargetException错误:{}", e);

}

SpringBoot生产实例对象名称的规则:

/**

* SpringBoot  bean的命名规则

*

* @param name

* @return

*/

public static Stringdecapitalize(String name) {

if (name ==null || name.length() ==0) {

return name;

    }

if (name.length() >1 && Character.isUpperCase(name.charAt(1)) &&

Character.isUpperCase(name.charAt(0))) {

return name;

    }

char chars[] = name.toCharArray();

    chars[0] = Character.toLowerCase(chars[0]);

    return new String(chars);

}

相关文章

网友评论

      本文标题:Java 反射获取单例实例对象

      本文链接:https://www.haomeiwen.com/subject/lhjjjxtx.html