Spring Boot中如何详细获取工具类Bean实例?
- 内容介绍
- 文章标签
- 相关推荐
本文共计780个文字,预计阅读时间需要4分钟。
这次实践经验的起因在于,在开发过程中,我想在工具类中使用配置文件的变量值。通常使用@value注解,但这个只能在Spring管理的Bean中总获取。之前我也很疑惑,为什么之前开发人员会在“中使用。
这次的实践经验的起因在于,在开发中,我想在工具类中使用配置文件的变量值。通常使用@value注解,这个只能在spring中管理的bean总获取。之前我也很疑惑,为什么之前的开发人员会在SpringUtil类上加入@Component注解,今天又遇到这种情况,其原因完全理解了。
@Component public class SpringUtil implements EnvironmentAware { private static Environment env; public static String getProperty(String key){ return env.getProperty(key); } @Override public void setEnvironment(Environment environment) { injectEnvironment(env); // 因为spring会创建这个接口的实现类的一个对象,所以实例方法调用静态方法,只是目前这个类我们是看不到的 } public static void injectEnvironment(Environment env){ SpringUtil.env = env; // 这其实是实例方法调用静态方法 } }
这个原理很简单,就是实例方法调用静态方法,所以还是生成了对象,只生产了一个工具类对象,而不是很多,这很java,很spring。
本文共计780个文字,预计阅读时间需要4分钟。
这次实践经验的起因在于,在开发过程中,我想在工具类中使用配置文件的变量值。通常使用@value注解,但这个只能在Spring管理的Bean中总获取。之前我也很疑惑,为什么之前开发人员会在“中使用。
这次的实践经验的起因在于,在开发中,我想在工具类中使用配置文件的变量值。通常使用@value注解,这个只能在spring中管理的bean总获取。之前我也很疑惑,为什么之前的开发人员会在SpringUtil类上加入@Component注解,今天又遇到这种情况,其原因完全理解了。
@Component public class SpringUtil implements EnvironmentAware { private static Environment env; public static String getProperty(String key){ return env.getProperty(key); } @Override public void setEnvironment(Environment environment) { injectEnvironment(env); // 因为spring会创建这个接口的实现类的一个对象,所以实例方法调用静态方法,只是目前这个类我们是看不到的 } public static void injectEnvironment(Environment env){ SpringUtil.env = env; // 这其实是实例方法调用静态方法 } }
这个原理很简单,就是实例方法调用静态方法,所以还是生成了对象,只生产了一个工具类对象,而不是很多,这很java,很spring。

