Spring Aware 基础

1. ApplicationContextAware 接口

  • 用于获取 bean 所在的应用上下文(ApplicationContext)
public interface ApplicationContextAware extends Aware {
    void setApplicationContext(ApplicationContext applicationContext) throws BeansException;
}

1.1 示例

@Component
public class SpringBeanUtils implements ApplicationContextAware {

    private static ApplicationContext applicationContext;

    @Override
    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
        SpringBeanUtils.applicationContext = applicationContext;
    }
}

2. InitializingBean 接口

当一个类实现 InitializingBean 接口时,Spring IoC容器会在实例化 bean 并注入所有依赖属性后自动调用afterPropertiesSet()方法,可以用来做一些初始化工作

public interface InitializingBean {
    void afterPropertiesSet() throws Exception;
}

2.1 示例

@Component
public class UserProperties implements InitializingBean {

    @Override
    public void afterPropertiesSet() throws Exception {
        this.init();
    }

    private void init() {
        // do something
    }
}

3. 运行环境 (EnvironmentAware)

当一个类实现了EnvironmentAware接口时,Spring容器在初始化这个bean之后,会自动调用setEnvironment()方法,将当前应用的环境对象传递给该bean。
Environment 接口提供了访问系统属性、配置文件属性以及自定义属性源的能力

public interface EnvironmentAware extends Aware {
    void setEnvironment(Environment environment);
}

3.1 示例

@Component
public class EnvUtils implements EnvironmentAware {

    private static Environment environment;
    
    public static String getConfig(String configKey) {
        return environment.getProperty(configKey);
    }

    @Override
    public void setEnvironment(Environment environment) {
        EnvUtils.environment = environment;
        System.out.println(JSON.toJSON(environment));
    }
}

【信息由网络或者个人提供,如有涉及版权请联系COOY资源网邮箱处理】

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容