简介
说明
本文用示例介绍Spring的@Bean的用法。
@Bean介绍
@Bean可以结合@Configuration向Spring注册类。见:Spring注册Bean(提供Bean)-方法大全 – 自学精灵
@Bean可以指定bean实例化之后和整个应用关闭时所执行的方法。其等价于使用@PostConstruct和@PreDestroy指定。
实例
代码
配置类
package com.example.config; import com.example.entity.BeanAnno; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class BeanAnnoConfig { @Bean(initMethod = "myInit", destroyMethod = "myDestroy") public BeanAnno getBeanAnno() { return new BeanAnno(); } }
实体类
package com.example.entity; public class BeanAnno { public void myInit() { System.out.println("[BeanAnno.myInit]: 5"); } public void myDestroy() { System.out.println("[BeanAnno.myDestroy]: 9"); } }
测试
启动SpringBoot
结果
[BeanAnno.myInit]: 5
关闭SpringBoot
[BeanAnno.myDestroy]: 9
上边的配置类与下边这种写法一样的效果
package com.example.config; import com.example.entity.BeanAnno; import org.springframework.context.annotation.Configuration; import javax.annotation.PostConstruct; import javax.annotation.PreDestroy; @Configuration public class BeanAnnoConfig { private BeanAnno beanAnno; @PostConstruct public void start() { beanAnno = new BeanAnno(); beanAnno.myInit(); } @PreDestroy public void destroy() { beanAnno.myDestroy(); } }
请先
!