标签:容器 beanFactory Spring Spring10 ApplicationEvent public bean 组件 监听
Spring重要组件 接口BeanPostProcessor: 拦截所有容器中的bean,并且可以对bean进行初始化、销毁操作。BeanFactoryPostProcessor: 拦截容器。
//拦截整个容器 @Component public class MyBeanFactory implements BeanFactoryPostProcessor{ @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { //beanFactory.getBeanDefinition(""); //根据bean的id获取bean int count = beanFactory.getBeanDefinitionCount(); System.out.println("容器中bean的个数:"+count); String[] names = beanFactory.getBeanDefinitionNames(); System.out.println("容器中所有bean的名字:"+ Arrays.asList(names)); } }
BeanDefinitionRegistryPostProcessor: 即将被加载之前(解析之前,称为BeanDefination对象之前) 监听器:可以监听事件,监听的对象必须是ApplicationEvent自身或子类或子接口。 方式一: 1.必须实现接口ApplicationListener; 2.可以监听事件,监听的对象必须是ApplicationEvent自身或子类或子接口; 3.要让Spring识别自己,必须加入IOC容器。 方式二: 注解形式。
@Component public class MyListener2 { //监听方法 @EventListener(classes = ApplicationEvent.class) public void myListenerMethod(ApplicationEvent event){ System.out.println("cccccc"+event); } }
自定义被监听事件: 1.自定义类实现ApplicationEvent接口(自定义事件); 2.发布事件。
context.publishEvent(new ApplicationEvent("myEvent") {});
标签:容器,beanFactory,Spring,Spring10,ApplicationEvent,public,bean,组件,监听 来源: https://www.cnblogs.com/ghlz/p/13203734.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。