Spring 開發之元件賦值

2022-06-10 03:42:08 字數 2692 閱讀 3247

1. @value & @propertysource

1.1 使用方式

@propertysource:讀取外部配置檔案中的 k/v 儲存到執行的環境變數中;載入完外部的配置檔案以後使用 ${} 取出配置檔案的值

@value:賦值

基本數值

可以寫 spel,#{}

可以寫 ${};取出配置檔案【properties】中的值(在執行環境變數裡面的值)

1.2 **

1. person

@data

@slf4j

@tostring

public class person ")

private long id;

@value("zs")

private string name;

@value("$")

private string address;

@value("$")

private integer age;

2. springconfig

@configuration

@propertysource(value = "classpath:person.properties")

public class springconfig {

@bean

public person person() {

return new person();

3. propertiestest

public class propertiestest {

public static void main(string args) {

person person = context.getbean(person.class);

system.out.println(person);

//person(id=2, name=zs, address=上海市, age=19)

2. @profile

2.1 使用方式

@profile:指定元件在哪個環境的情況下才能被註冊到容器中,不指定,任何環境下都能註冊這個元件

加了環境標識的 bean,只有這個環境被啟用的時候才能註冊到容器中。預設是 default 環境

寫在配置類上,只有是指定的環境的時候,整個配置類裡面的所有配置才能開始生效

沒有標註環境標識的 bean 在任何環境下都是載入的

2.2 **

1. message

@data

@noargsconstructor

@allargsconstructor

public class message {

private string label = null;

2. springconfig

@configuration

public class springconfig {

@profile("default")

@bean

public message defaultmessage() {

return new message("default");

@profile("dev")

@bean

public message devmessage() {

return new message("dev");

@profile("test")

@bean

public message testmessage() {

return new message("test");

@profile("prod")

@bean

public message prodmessage() {

return new message("prod");

3. 啟用方式 1

啟用 profile:設定虛擬機器引數 -dspring.profiles.active=dev,test

public class profiletest {

public static void main(string args) {無錫**醫院哪家好

string names = context.getbeannamesfortype(message.class);

for (string name : names) {

system.out.println(name);

//devmessage

//prodmessage

4. 啟用方式 2

public class profiletest {

public static void main(string args) {

//2. 設定需要啟用的環境

context.getenvironment().setactiveprofiles("dev", "prod");

//3. 註冊主配置類

context.register(springconfig.class);

//4. 重新整理容器

context.refresh();

string names = context.getbeannamesfortype(message.class);

for (string name : names) {

system.out.println(name);

//testmessage

//prodmessage

詳解Spring註解驅動開發之屬性賦值

在per程式設計客棧son的屬性上使用 value註解指定注入值 public class person spel表示式 private integer id value 張三 基本資料型別 private string namewww.cppcns.com 配置類 configuration pu...

Spring之元件掃瞄

元件掃瞄 component scanning spring能夠從指定的classpath下自動掃瞄,偵測和例項化具有特定註解的bean。spring提供了一下幾個註解來標註需要被掃瞄到的bean a class lesson01.beans.a scope singleton name value...

Spring註解驅動開發實現屬性賦值

前言 在實際開發當中,spring中bean的屬性直接賦值用的不是太多,整理這方面的資料,做乙個小結,以備後續更深入的學習。通過配置檔案的方式 以配置檔案的方式啟動spring容器時,可以使用property標籤的value給bean的屬性賦值,賦值的形式有以下幾種 程式設計客棧e name val...