Spring常用接口有哪些


这篇文章主要讲解了“Spring常用接口有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring常用接口有哪些”吧!1、InitializingBean接口
InitializingBean接口中只有一个afterPropertiesSet方法,从方法的名称上很容易理解,这个方法是在Bean的属性都设置值后被调用,用于完成一些初始化工作。当然,在Spring的配置文件中init-method的配置也是在Bean的属性都设置值后被调用,用于完成一些初始化工作,不过在执行顺序上,接口的方法先于配置。值得注意的是,这两种方式都是用于完成一些初始化工作,所以相应的方法中不要编写一些复杂且执行时间很长的逻辑。 当需要在bean的全部属性设置成功后做些特殊的处理,可以让该bean实现InitializingBean接口。效果等同于bean的init-method属性的使用或者@PostContsuct注解的使用。 三种方式的执行顺序:先注解,然后执行InitializingBean接口中定义的方法,最后执行init-method属性指定的方法。2、DisposableBean接口
DisposableBean接口中只有一个destroy方法,该方法会在Bean被销毁、生命周期结束之前被调用,用于做一些销毁的收尾工作。同样,在Spring的配置文件中destroy-method配置也完成同样的工作,不过在执行顺序上,接口的方法先于配置。当需要在bean销毁之前做些特殊的处理,可以让该bean实现DisposableBean接口。效果等同于bean的destroy-method属性的使用或者@PreDestory注解的使用。 三种方式的执行顺序:先注解,然后执行DisposableBean接口中定义的方法,最后执行destroy-method属性指定的方法。3、ApplicationContextAware接口
ApplicationContextAware中只有一个setApplicationContext方法。实现了ApplicationContextAware接口的类,可以在该Bean被加载的过程中获取Spring的应用上下文ApplicationContext,通过ApplicationContext可以获取Spring容器内的很多信息。当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口。代码展示如下:public class Animal implements ApplicationContextAware, BeanNameAware{ private String beanName; private ApplicationContext applicationContext; public void setBeanName(String name) { this.beanName = name; } /** * @param applicationContext 该参数将由Spring容器自动赋值 */ public void setApplicationContext(ApplicationContext applicationContext)throws BeansException { this.applicationContext = applicationContext; } public void run(){ System.out.println(beanName); //发布自定义事件 AnimalEvent event = new AnimalEvent(this, “老虎”); applicationContext.publishEvent(event); } } 通过@Autowired注解可以自动装配一些常用对象实例:@Autowired private MessageSource messageSource; @Autowired private ResourceLoader resourceLoader; @Autowired private ApplicationContext applicationContext;4、BeanFactoryAware接口
BeanFactoryAware接口中只有一个setBeanFactory方法。实现了BeanFactoryAware接口的类,可以在该Bean被加载的过程中获取加载该Bean的BeanFactory,同时也可以获取这个BeanFactory中加载的其它Bean。5、FactoryBean接口
FactoryBean接口可以实现Bean实例化的个性定制,让Spring容器加载我们想要的Bean。实现了FactoryBean接口的类,可以通过实现getObject方法,实现加载我们想要的Bean。6、BeanPostProcessor接口
BeanPostProcessor接口中有两个方法,分别为postProcessBeforeInitialization和postProcessAfterInitialization。实现了BeanPostProcessor接口的类,会在每个Bean初始化(即调用setter)之前和之后,分别调用这个类中的postProcessBeforeInitialization方法和postProcessAfterInitialization方法,实现初始化的逻辑控制。7、InstantiationAwareBeanPostProcessor接口
InstantiationAwareBeanPostProcessor接口中,常用的方法是postProcessBeforeInstantiation和postProcessAfterInstantiation。每个Bean的实例化(即调用构造函数)之前和之后,会分别调用实现了该接口的类中的postProcessBeforeInstantiation和postProcessAfterInstantiation方法。8、BeanFactoryPostProcessor接口
BeanFactoryPostProcessor接口中只有postProcessBeanFactory方法。实现了该接口的类,可以在Bean被创建之前,获取容器中Bean的定义信息,并且可以进行修改。实现类中的postProcessBeanFactory方法只会被执行一次,且先于BeanPostProcessor接口的方法。9、当需要监听自定义事件时,可以新建一个实现ApplicationListener接口的类,并将该类配置到Spring容器中。代码展示如下:/*** 自定义事件监听器*/ public class CustomEventListener implements ApplicationListener { public void onApplicationEvent(ApplicationEvent event) { if(event instanceof AnimalEvent){ AnimalEvent animalEvent = (AnimalEvent)event; System.out.println(“触发自定义事件:Animal name is ” + animalEvent.getName()); } } } 要发布自定义事件,需要调用ApplicationContext的publishEvent方法
10、ApplicationEvent抽象类 当需要创建自定义事件时,可以新建一个继承自ApplicationEvent抽象类的类。代码展示如下:/*** 自定义事件*/ public class AnimalEvent extends ApplicationEvent { private String name; public String getName() { return name; } /** * @param source 事件源对象 */ public AnimalEvent(Object source){ super(source); } public AnimalEvent(Object source, String name){ super(source); this.name = name; } }感谢各位的阅读,以上就是“Spring常用接口有哪些”的内容了,经过本文的学习后,相信大家对Spring常用接口有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。 香港云主机这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: 笔记本电脑怎么静止任务管理器进程状态

这篇文章主要讲解了“笔记本电脑怎么静止任务管理器进程状态”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“笔记本电脑怎么静止任务管理器进程状态 香港云主机”吧!1.右击任务栏,选择“启动任务管理器”。2.切换到“进…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 08/08 16:49
下一篇 08/08 16:50

相关推荐