简介
说明
本文用示例介绍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();
}
}

请先 !