spring @Value 注解用法

1 @Value("#{}")   SpEL表达式

@Value("#{}") 表示SpEl表达式通常用来获取bean的属性,或者调用bean的某个方法。当然还有可以表示常量

@Controller
@RequestMapping("/login")
public class LoginController {
	
	@Value("#{1}")
	private int number; //获取数字 1
	
	@Value("#{'Spring Expression Language'}") //获取字符串常量
	private String str;
	
	@Value("#{User.name}") //获取bean的属性
	private String name;
	
	@Autowired
	private DataSourceTransactionManager transactionManager;
 
    @ResponseBody
	@RequestMapping("login")
	public String login() {
		System.out.println(number);
		System.out.println(str);
		System.out.println(name);
		return "成功";
	}
}

2 @Value("${}") 

通过@Value("${}") 可以获取对应属性文件中定义的属性值。

假如我有一个web.properties文件 里面规定了一组值 : web.view.prefix =/WEB-INF/views/

注意 : 必须在springMvc.xml文件中扫描或者注册的bean中才能通过@Value("${web.view.prefix}")获取这个字符串,

其他未在springMvc.xml扫描和定义的bean必须在相应的xml文件中引入下面代码才能使用@Value("${}”)表达式

<!-- 加载配置属性文件 -->
	<context:property-placeholder
		ignore-unresolvable="true" location="classpath:conf.properties" />

然后再controller文件中通过下面代码即可获取“”/WEB-INF/views/“”这个字符串

	@Value("${web.view.prefix}")
	private String prefix; 

猜你喜欢

转载自blog.csdn.net/weixin_40461281/article/details/81096595