11 spring注解之@value注解
11.1 xml配置属性方式
简单介绍一下@value
注解的使用,在讲@value
注解使用前,先让我们一起来看看原先xml方式是怎么注入属性参数的
首先在xml中定义一个bean如下:把对应的参数以property中value的形式注入
1 2 3 4 5
| <bean id="user" class="com.zhang.bean.User"> <property name="age" value="26"></property> <property name="userName" value="zhangsan"></property> </bean>
|
测试代码如下:
1 2 3 4 5 6 7 8
| @Test public void testXmlValue() { ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml"); User bean = (User) applicationContext.getBean("user"); System.out.println(bean); }
|
运行结果如下:可以发现已经获取到xml中配置的属性了
[userName1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| ## 11.2 @Value配置属性方式 接下来我们来看看用`@value`注解要怎么实现,首先在User对象的属性中增加`@value`注解如下:
```java public class User { /** * 用户名 */ @Value("张三") private String userName; /** * 年龄 */ @Value("26") private Integer age; }
|
配置类如下:
1 2 3 4 5 6 7 8 9 10 11
| @Configuration public class MainConfig {
@Bean public User getUser(){ return new User(); } }
|
测试类如下:
1 2 3 4 5 6
| public void testValue() { AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class); User bean = applicationContext2.getBean(User.class); System.out.println("实例1 === "+bean); applicationContext2.close(); }
|
怎么样发现我们同样获取到了对应的值,有人可能会觉得这样配置并不是特别方便,甚至觉得这样比较麻烦,那下边我们一起来看下@value几种数值填充方式
- 基本数值的填充 这个上面演示的就是
- 基于SpEl表达式#{} 如上文中年龄也可以这样#{28-2}
- 基于配置文件${配置文件中参数名}
基于配置文件是我们最常用的也是最方便的一种,将会在下一节中讲@PropertySource注解的时候给大家演示,敬请期待…
本文大部分转自:
51CTO博客-知了123