-----------------------siwuxie095
表达式 SpEL 方式的属性注入
表达式 SpEL 方式的属性注入是 Spring 3.x 版本后提供的方式
1、编写一个普通类
Book.java:
package com.siwuxie095.property;
public class Book {
private String bookName; privateint bookPrice;
publicvoid setBookName(String bookName) { this.bookName = bookName; }
public String getBookName() { return bookName; }
publicvoid setBookPrice(int bookPrice) { this.bookPrice = bookPrice; }
publicint getBookPrice() { return bookPrice; }
} |
2、编写另一个普通类
User.java:
package com.siwuxie095.property;
public class User {
private String userName; private Book book;
publicvoid setUserName(String userName) { this.userName = userName; }
publicvoid setBook(Book book) { this.book = book; }
publicvoid print() { System.out.println("User:"+userName+ "\nBook:"+book.getBookName()+ "\nCost:"+book.getBookPrice()); } } |
3、在配置文件中注入属性
applicationContext.xml:
<?xmlversion="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--表达式 SpEL方式的属性注入 -->
<beanid="book"class="com.siwuxie095.property.Book"> <propertyname="bookName"value="#{'十万个为什么'}"></property> <propertyname="bookPrice"value="#{100}"></property> </bean>
<beanid="user"class="com.siwuxie095.property.User"> <propertyname="userName"value="#{'小明'}"></property> <propertyname="book"value="#{book}"></property> </bean>
</beans> |
4、编写一个测试类
TestProperty.java:
package com.siwuxie095.property;
import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestProperty {
/** *手动加上 @Test以进行单元测试(将自动导入 JUnit 4的 jar包) * *选中方法名,右键->Run As->JUint Test */ @Test publicvoid testProperty() { // (1)加载 Spring的核心配置文件 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
// (2)得到核心配置文件中创建的对象(获取 Bean实例) User user=(User) context.getBean("user");
user.print(); } } |
【made by siwuxie095】