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
暂无评论内容