Spring中的注解@Value(“#{}“)与@Value(“${}“)的区别和作用?
先说总结:
Value("#{}"):可以取ioc容器中的bean( 写bean名),可写常规表达式(1,“string”)
Value("${}"):作用是取配置文件中的值
①Value("#{}")
@RestController
@RequestMapping("/login")
@Component
public class LoginController {
@Value("#{1}")
private int number; //获取数字 1
@Value("#{'Spring Expression Language'}") //获取字符串常量
private String str;
@Value("#{dataSource.url}") //获取bean的属性
private String jdbcUrl;
@Autowired
private DataSourceTransactionManager transactionManager;
@RequestMapping("login")
public String login(String name,String password) throws FileNotFoundException{
System.out.println(number);
System.out.println(str);
System.out.println(jdbcUrl);
return "login";
}
}
②Value("${}")
aliyun.vod.file.keyid=LTAI4XXXTJ3XXXNJJqJnk7
aliyun.vod.file.keysecret=9sXXXXXXXbM632fRbG
@Value("${aliyun.vod.file.keyid}")
private String keyId;