Spring 中 Bean 中通过实现 Aware 接口的方式可以自动注入哪些资源

9 篇文章 0 订阅
package sping.analysis.aware;

import java.util.Locale;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.context.ApplicationEventPublisherAware;
import org.springframework.context.EmbeddedValueResolverAware;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.env.Environment;
import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Component;
import org.springframework.util.StringValueResolver;

/**
 * Spring 中 Bean 中可以自动注入哪些资源,通过实现 Aware 接口的方式实现的
 * 
 * @author slHuang
 * @since 2019-02-08
 */
@Component
public class MyBeanAwareByImpl implements ApplicationContextAware, EnvironmentAware, EmbeddedValueResolverAware,
	ResourceLoaderAware, ApplicationEventPublisherAware, MessageSourceAware{

	private ApplicationContext applicationContext;
	private Environment environment;
	private StringValueResolver resolver;
	private ResourceLoader resourceLoader;
	private ApplicationEventPublisher applicationEventPublisher;
	private MessageSource messageSource;
	
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		this.applicationContext = applicationContext;
	}

	public void useApplicationContext() {
		System.out.println(this.applicationContext.containsBean("myBeanAwareByImpl"));
	}

	public void setEnvironment(Environment environment) {
		this.environment = environment;
	}
	
	public void useEnvironment() {
		System.out.println(this.environment.getProperty("java.home"));
	}

	public void setEmbeddedValueResolver(StringValueResolver resolver) {
		this.resolver = resolver;
	}
	
	public void useResolver() {
		System.out.println(this.resolver.resolveStringValue("${java.runtime.version}"));
	}

	public void setResourceLoader(ResourceLoader resourceLoader) {
		this.resourceLoader = resourceLoader;
	}
	
	public void useResourceLoader() {
		System.out.println(this.resourceLoader.getResource("classpath:src/main/resources/application.xml"));
	}

	public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
		this.applicationEventPublisher = applicationEventPublisher;
	}
	
	public void useApplicationEventPublisher() {
		System.out.println(this.applicationEventPublisher);
	}

	public void setMessageSource(MessageSource messageSource) {
		this.messageSource = messageSource;
	}
	
	public void useMessageSource() {
		System.out.println(this.messageSource.getMessage("Message", null, "not exist", Locale.JAPAN));
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值