要想在自定义组件中获取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}");
}
}

最新文章

  1. Java 基础【12】 压缩与解压缩
  2. iOS - WXPay 微信支付
  3. asp.net MVC中使用entity framework出现从 datetime2 数据类型到 datetime 数据类型的转换产生一个超出范围的值”的处理
  4. C# 条件编译备忘
  5. 深入理解Loadrunner中的Browser Emulation
  6. nodejs学习之文件上传
  7. [转]一步步教你如何在 Visual Studio 2013 上使用 Github
  8. [未完成]关于枚举(Enum)
  9. Android 2D绘图初步
  10. HTML5手机开发——滚动和惯性缓动
  11. Linux简介与厂商版本上
  12. UVa437,The Tower of Babylon
  13. docker 搭建以太坊私有链搭建
  14. Express框架之Jade模板引擎使用
  15. javascript 面向过程和面向对象
  16. XPC connection interrupted
  17. Java中的几种对象(POJO,PO,DTO,DAO,BO)
  18. HDU 1907 John (Nim博弈)
  19. 解决IntelliJ IDEA控制台乱码问题[包含程序运行时的log4j日志以及tomcat日志乱码]
  20. spring冲刺第一天

热门文章

  1. 如何使用js在移动端和PC端居中
  2. 剑指offer-二叉搜索树的第k个结点树-python
  3. jQuery进阶第三天(2019 10.12)
  4. Springboot 打jar包项目无法访问jsp问题解决方案
  5. Ajax加载数据后百度分享实例
  6. netlink, PF_NETLINK - 内核与用户之间的通讯
  7. 【转】Linux下的磁盘分区方法
  8. Linux日常之以当前时间命名文件
  9. Revolver Maps-3D地球仪网站定制
  10. libboost_regex 备份用时