本篇文章为你整理了springboot~ApplicationContextAware与@Autowired注解()的详细内容,包含有 springboot~ApplicationContextAware与@Autowired注解,希望能帮助你了解 springboot~ApplicationContextAware与@Autowired注解。
ApplicationContextAware是一个接口,它提供一个方法setApplicationContext,当spring注册完成之后,会把ApplicationContext对象以参数的方式传递到方法里,在方法里我们可以实现自己的逻辑,去获取自己的bean,当前对接的断言等;一般用在被封装的工具包,starter包中,方便给其它开发人员调用。
@Autowired是直接给开发人员用的,直接注入对接类型的bean的,开箱即用,对应的注解还有@Qualifier,或者直接使用@Resource注解来实现按beanName的注入。
LindContext
@Component
public class LindContext {
public void print(){
System.err.println("lind-context print.");
LindAware
public class LindAware implements ApplicationContextAware {
ApplicationContext applicationContext;
LindContext lindContext;
public void contextPrint() {
this.lindContext.print();
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
if (this.applicationContext.getBeansOfType(LindContext.class).isEmpty()) {
throw new IllegalArgumentException("未加载或者未发现LindContext的bean,请保证它可以正常加载到Spring容器.");
this.lindContext = this.applicationContext.getBean(LindContext.class);
LindConfig
@Configuration
public class LindConfig {
@Bean
public LindAware testAware() {
return new LindAware();
测试
@RunWith(SpringRunner.class)
@SpringBootTest()
public class TestAware {
@Autowired
LindAware lindAware;
@Test
public void print() {
lindAware.contextPrint();
当前如果没有LindContext的bean被注册时,会在LindAware中抛出对应的异常,来提示给开发人员
以上就是springboot~ApplicationContextAware与@Autowired注解()的详细内容,想要了解更多 springboot~ApplicationContextAware与@Autowired注解的内容,请持续关注盛行IT软件开发工作室。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。