在配置文件中可以通过property 标签对Bean进行赋值:
<context:component-scan base-package="com.xinyi"></context:component-scan> <bean id="Person" class="com.xinyi.bean.Person" init-method="" destroy-method=""> <property name="name" value="新一"></property> <property name="age" value="18"></property> </bean> 复制代码
在spring的注解开发中可以使用@value注解对Bean的属性进行赋值。@Value注解作用:
该注解的作用是将我们配置文件的属性读出来,与上面的property一样的,该注解有两种方式:@Value(“${}”) 和 @Value(“#{}”) 两种方式。
具体使用的代码如下:
首先新建一个person实体类:
package com.xinyi.bean; import org.springframework.beans.factory.annotation.Value; public class Person { private String name; private Integer age; private String sname; public String getName() { return name; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } @Override public String toString() { return "Person [name=" + name + ", age=" + age + ", sname=" + sname + "]"; } public Person(String name, Integer age, String sname) { super(); this.name = name; this.age = age; this.sname = sname; } public Person() { } } 复制代码
然后在配置类中通过使用bean注解将Bean注入到IOC容器中,关于bean的注册可以参考之前的文章:Spring注解(五):容器注册组件的四种方式:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.xinyi.bean.Person; @Configuration public class MyConfig2 { @Bean public Person person() { return new Person(); } } 复制代码
使用@Test注解进行代码测试,输出Bean:
@Test public void test6() { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig2.class); Person person = (Person) applicationContext.getBean("person"); System.out.println(person); } 复制代码
可以发现由于没对Bean的name、age和sname属性进行赋值,所以得到的输出的结果都为null,输出结果如下所示:
通常也可以在配置类文件中直接对其进行属性的赋值操作,不过这种调用有参构造函数的方式比较僵硬,所以不推荐。这种方式如下:
@Bean public Person person() { return new Person("亚索",23,"孤儿玩家"); } 复制代码
同样也可以读到其属性值,输出结果如下
这里主要介绍的是通过@Value注解将外部的值动态注入到Bean中,并且@value注解可以配合@PropertySource注解将外部配置文件的值注入Bean的属性,具体的代码如下,在person类中使用@value注解对属性进行赋值: @value基本类型赋值
@Value("亚索") private String name; 复制代码
@value:SpEL表达式赋值,下面结果为24
@Value("#{23+1}") private Integer age; 复制代码
@value:获取properties配置文件中的值需要搭配@PropertySource注解(在配置类上)
@Value("${person.sname}") private String sname; 复制代码
person.properties配置文件内容如下:
获取person.properties配置文件中的sname的值需要在配置类上加上@PropertySource注解,
@PropertySource(value={"classpath:/person.properties"}) 复制代码
输出结果如下:
以上就是如何在spring开发中给Bean的属性注值的两种方式,这里主要介绍的是使用@value注解对Bean进行属性赋值。