天天看點

SpringBoot 向容器中添加元件

SpringBoot 向容器中添加元件

使用@[email protected]方法
           
  • 首先編寫一個要加入的元件類,(一般情況在主程式檔案夾下興建Bean檔案夾,将元件類存放在其中,我的路徑如下com.example.demo.Bean)示例如下:
package com.example.demo.Bean;
public class Person {
    public String name;
    public int age;
    public Person(){}
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void getName(String na){
        this.name=na;
    }
    public void getage(int ag){
        this.age=ag;
    }
}
           
  • 然後建立配置類(一般情況在主程式檔案夾下興建config檔案夾,将配置類檔案存放在其中,我的路徑如下com.example.demo.config)示例代碼如下:
package com.example.demo.config;

import com.example.demo.Bean.Person;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration//告訴SpringBoot這是一個配置類

public class myConfig {
    @Bean
    public Person person01(){
        return new Person("zhengsan",18);
    }
}
           

到這裡我們就已經在容器中添加元件了,下面是代碼的一些說明:

1、在myConfig 類中,我們使用函數的方式向容器中添加元件,元件名即函數名,可以通過@Bean("name")的方法指定函數名
2、配置類裡面使用@Bean标注在方法上給瘁器注冊元件,默以也是單執行個體的
3、配置類本身也是元件
4、proxyBeanMethods: 代理bean的方法
Full(Configuration(proxyBeanMethods=ture))表示代理Bean,無論調用多少次person01函數,都将首先檢查容器中是否有該元件,如果用直接調用,沒有則生成新的元件,即無論調用多少次person01函數都是同一個元件
Lite(Configuration(proxyBeanMethods=false))每次調用person01函數都将生成一個新的元件。
@Configuration() // 告訴SpringBoot這是一個配置類==配置檔案
public class MyConfig {
外部無論對配置類中的這個元件注冊方法調用多少次擷取的都是之前注冊容器中的單執行個體對象
@Bean //給容器中添加元件。以方法名作為元件的id.傳回類型就是元件類型。傳回的值,就是元件在容器中的執行個體
}