spring工具类中注入使用bean

场景描述:
在开发过程中,有些功能方法更贴合放置在工具类中,并且可以做到使用者不需要引入bean执行方法,可以按工具类静态方法直接使用。但我们会遇到,在工具类中注入bean,无法生效,获取不到的情况。

解决办法:

  1. 在工具类中定义@Component,是工具类交由spring容器管理;
  2. 在工具类中,使用@Autowired,注入需要使用的组件,并增加一个静态属性名;
  3. 使用@PostConstruct, 在容器实例化工具类后,将属性名赋值为注入组件的变量;
    之后便可以使用静态属性正常在方法中使用了。

示例:

@Component
@Slf4j
public class ConnectionUtil {

    @Autowired
    private ConnectionProperties connectionProperties;
    // 在其他静态方法中就可以用properties使用了
    public static ConnectionProperties properties;

    @PostConstruct
    public void init(){
        properties = connectionProperties;
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容