突然发现@Value("#{}") 这两者的区别
一.@Value("#{}")
其实是SpEL表达式的值,可以表示常量的值,或者获取bean中的属性
代码语言:javascript复制@RestController
@RequestMapping("/test")
@Component
public class TestController {
@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("value")
public String valueTest() throws FileNotFoundException{
System.out.println(number);
System.out.println(str);
System.out.println(jdbcUrl);
return "success";
}
}
二.@Value("${}") 用于获取配置文件中的属性值,通常用于获取写在application.properties中的内容,例如在配置文件中:
代码语言:javascript复制jdbc.driverClass=com.mysql
jdbc.url=3306@127.0.0.1
jdbc.user=admin
则在类中可以通过@Value(""${jdbc.url})来获取相应的值