所有分类
  • 所有分类
  • 未分类

Spring注解-@Bean的使用

简介

说明

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

评论0

请先

显示验证码
没有账号?注册  忘记密码?

社交账号快速登录