创建bean(@Bean)

Exisi 2022-11-28 08:11:53
Categories: Tags:

 

 

参数

描述

name

bean 的名称,或者如果有多个名称,则是主 bean 名称加上别名。

value

name属性的别名

initMethod

在初始化期间调用 bean 实例的方法的可选名称。

destroyMethod

关闭应用程序上下文时在 bean 实例上调用的方法的可选名称,例如 JDBC 数据源实现上的 close() 方法或 Hibernate SessionFactory 对象

autowireCandidate

这个 bean 是否是自动装配到其他 bean 的候选者

 

 

@Configuation + @Bean = @Component

 

 

  1. 用在方法上

示例


public class DataSource {

    private String url;

    private String userId;

    private String password;

 

    public String getUrl() {

        return url;

    }

 

    public void setUrl(String url) {

        this.url = url;

    }

 

    public String getUserId() {

        return userId;

    }

 

    public void setUserId(String userId) {

        this.userId = userId;

    }

 

    public String getPassword() {

        return password;

    }

 

    public void setPassword(String password) {

        this.password = password;

    }

 

    @Override

    public String toString() {

        return "DataSource{" +

                "url='" + url + '\'' +

                ", userId='" + userId + '\'' +

                ", password='" + password + '\'' +

                '}';

    }

}

 

 

@Configuration

public class DataBaseConfig {

 

    @Bean("dataSource")

    public DataSource getDataSource(){

        DataSource dataSource = new DataSource();

        dataSource.setUserId("jingsi");

        dataSource.setPassword("123456");

        dataSource.setUrl("www");

        return dataSource;

    }

 

}

 

  1. @Bean可以为Bean同时定义多个别名,但是别名不能为空字符串

示例

@Configuration

public class DataBaseConfig {

    @Bean({"dataSource","data2"})

    public DataSource getDataSource(){

        DataSource dataSource = new DataSource();

        dataSource.setUserId("jingsi");

        dataSource.setPassword("123456");

        dataSource.setUrl("www");

        return dataSource;

    }

 

}