一、內部直接賦值
- 直接賦值 @Value("")
- 可以寫@Value("#{20-5}")進行數值賦值
1、創建Dog類
package com.example.demo;
import org.springframework.beans.factory.annotation.Value;
public class Dog {
@Value("小白")
private String name;
@Value("#{20-5}")
private int age;
@Override
public String toString() {
return "Dog [name= " + name + ", age= " +age +"]";
}
}
2、創建配置類
//告訴Spring這是一個配置類
@Configuration
public class MainConfig {
/*
* 1、指定初始化和銷燬方法
* 通過@Bean指定initMethod和destroyMethod
*/
@Bean(name="dog")
public Dog dog() {
return new Dog();
}
}
3、測試
@SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfig.class);
Dog dog = (Dog)applicationContext.getBean("dog");
System.out.println(dog);
}
}
結果:
Dog [name= 小白, age= 15]
二、從配置文件中取值
- 可以寫${}取出配置文件【properties】的值(在運行環境變量裏面的值)
- 使用@PropertySource讀取外部配置文件中的k/v保存到運行的環境變量中;加載完外部的配置文件後使用${}取出配置文件的值
1、編寫dog.propertise配置文件
Dog.name=小白 Dog.age=18
2、編寫配置類
//告訴Spring這是一個配置類
@Configuration
//@PropertySource讀取外部配置文件
@PropertySource(value = "classpath:/dog.propertise")
public class MainConfig {
/*
* 1、指定初始化和銷燬方法
* 通過@Bean指定initMethod和destroyMethod
*/
@Bean(name="dog")
public Dog dog() {
return new Dog();
}
}
3、編寫dog類,並從文件中讀取
public class Dog {
@Value("${Dog.name}")
private String name;
@Value("#{20-5}")
private int age;
@Override
public String toString() {
return "Dog [name= " + name + ", age= " +age +"]";
}
}
同樣能賦值成功