要想在自定义组件中获取spring底层的各种组件,只需让自定义组件实现一系列接口即可,这些接口都是Aware的子接口。常见的有:
1. ApplicationContextAware——用于获取IOC容器;
2. BeanNameAware——用于获取bean的名称;
3. EmbeddedValueResolverAware——用于获取字符串解析器,可以解析各种占位符,例如${}、$#{}等。
 
示例代码如下,自定义bean类实现了三种Aware接口
public class Candy implements ApplicationContextAware, BeanNameAware, EmbeddedValueResolverAware {
//bean的名称
private String name;
//容器
private ApplicationContext applicationContext;
//配置文件中的值
private String nickname; @Override
public void setBeanName(String name) {
this.name = name;
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext = applicationContext;
}
@Override
public void setEmbeddedValueResolver(StringValueResolver resolver) {
this.nickname = resolver.resolveStringValue("${bottle.nickname}");
}
}

在自定义组件中获取spring底层组件的更多相关文章

  1. 23、自动装配-Aware注入Spring底层组件&原理

    23.自动装配-Aware注入Spring底层组件&原理 Aware 接口,提供了类似回调函数的功能 自定义组件想要使用Spring 容器底层的一些组件(Application Context ...

  2. 微信小程序在组件中获取界面上的节点信息wx.createSelectorQuery

    节点信息查询 API 可以用于获取节点属性.样式.在界面上的位置等信息. 最常见的用法是使用这个接口来查询某个节点的当前位置,以及界面的滚动位置. 示例代码: const query = wx.cre ...

  3. Spring9——通过用Aware接口使用Spring底层组件、环境切换

    通过用Aware接口使用Spring底层组件 能够供我们使用的组件,都是Aware的子接口. ApplicationContextAware:实现步骤:             (1)实现Applic ...

  4. angular2的ElementRef在组件中获取不到

    angular2的ElementRef在组件中获取不到 angular2不推荐操作dom,但是实际应用中不可避免的需要使用到dom操作,怎么操作,官方文档提供了一系列api(ElementRef,Vi ...

  5. vue父组件中获取子组件中的数据

    <FormItem label="上传头像" prop="image"> <uploadImg :width="150" ...

  6. web项目中获取spring的bean对象

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,如何在程序中不通过注解的形式(@Resource.@Autowired)获取Spring配置的bean呢? Bean工厂(c ...

  7. 微信小程序将外部数据从父组件中传入到子组件

    小程序组件开发遇到一个组件内嵌两个组件,而这两个子组件所使用的数据来自于同一个API,如下图所示. 如果这时候两个子组件各自导入同一个接口就会显得多余.另外的办法是由父组件导入接口数据,再从父组件将接 ...

  8. vue组件中的样式属性:scoped,解决在父组件中无法修改子组件样式问题

    Scoped CSS规范是Web组件产生不污染其他组件,也不被其他组件污染的CSS规范. vue组件中的style标签标有scoped属性时表明style里的css样式只适用于当前组件元素,它是通过使 ...

  9. Web项目中获取SpringBean——在非Spring组件中获取SpringBean

    最近在做项目的时候我发现一个问题:Spring的IOC容器不能在Web中被引用(或者说不能被任意地引用).我们在配置文件中让Spring自 动装配,但并没有留住ApplicationContext的实 ...

随机推荐

  1. centos7修改端口登陆

    1 安装ssh服务 yum install -y openssh-server2 修改默认端口并保存 vim /etc/ssh/sshd_config 3 打开防火墙 service firewall ...

  2. 简单的物流项目实战,WPF的MVVM设计模式(四)

    接下来写ViewModels 创建运单的ViewModel类 public class CreateExpressWindowViewModel: NotificationObject { priva ...

  3. author认证模块

    author认证模块 用auth模块 你就用全套 不是自己写一部分 用别人一部分 ​ 创建超级管理员,用于登录DJango admin的后台管理 ​ 命令:createsuperuser,输入顺序用户 ...

  4. 如何在github上部署自己的前端项目

    很多时候我们想需要一个地址就可以访问自己的前端作品, 但是注册一个服务器和域名是需要花钱,很多小伙伴都不愿意, 其实这种前端静态页面github就可以帮我们预览其效果,而且只要在有网的情况下都可以访问 ...

  5. WPF游戏,使用move游戏开发

    我看了好多游戏的源码,其实每一个,我想做,rpg的都需要移动,那么wpf,win8应用,数据绑定,我们需要一个Thread来让人物移动. 于是用move. 在每个人物,自己和敌人,npc类,都有一个m ...

  6. 模型验证方法——R语言

    在数据分析中经常会对不同的模型做判断 一.混淆矩阵法 作用:一种比较简单的模型验证方法,可算出不同模型的预测精度 将模型的预测值与实际值组合成一个矩阵,正例一般是我们要预测的目标.真正例就是预测为正例 ...

  7. 伟大的GIL

    GIL 首先需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念.就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代 ...

  8. 负载均衡的3种模型(httpd+lvs几十万并发的负载均衡搭建)

    一.几种常见的负载均衡模型 二.搭建httpd+lvs LVS .node01 启动一块eth0:2的网卡子接口(ifconfig eth0: down可以把网卡down掉) ifconfig eth ...

  9. Java Annotation 刷课笔记(一)

    1.什么是注解? 1.1.Annotation是从JDK5.0引入的新技术 1.2.Annotation的作用: 不是程序本身,可以对程序作出解释(这一点,和注释没什么区别) 可以被其他程序(比如编译 ...

  10. ZX树初步

    一些数据结构,比如线段树或平衡树,他们一般是要么维护每个元素在原序列中的排列顺序,要么是维护每个元素的大小顺序,若是像二者兼得那么就想想主席树. 给你多个不同的数字问你1-N第K大的数是多少 最简单的 ...