表達式SpEL方式的屬性註入
-----------------------siwuxie095
表達式 SpEL 方式的屬性註入
表達式 SpEL 方式的屬性註入是 Spring 3.x 版本後提供的方式
1、編寫一個普通類
Book.java:
package com.siwuxie095.property;
public class Book {
private String bookName;
private
int bookPrice;
public void setBookName(String bookName) { this.bookName = bookName; }
public String getBookName() { return bookName; }
public
void setBookPrice(int bookPrice) { this.bookPrice = bookPrice; }
public int getBookPrice() { return bookPrice; }
} |
2、編寫另一個普通類
User.java:
package com.siwuxie095.property;
public class User {
private String userName; private Book book;
public void setUserName(String userName) { this.userName = userName; }
public void setBook(Book book) { this.book = book; }
public void print() { System.out.println("User:"+userName+ "\nBook:"+book.getBookName()+ "\nCost:"+book.getBookPrice()); } } |
3、在配置文件中註入屬性
applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="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 方式的屬性註入 -->
<bean id="book" class="com.siwuxie095.property.Book"> <property name="bookName" value="#{‘十萬個為什麽‘}"></property> <property name="bookPrice" value="#{100}"></property> </bean>
<bean id="user" class="com.siwuxie095.property.User"> <property name="userName" value="#{‘小明‘}"></property> <property name="book" value="#{book}"></property> </bean>
</beans> |
4、編寫一個測試類
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 public void testProperty() { // (1) 加載 Spring 的核心配置文件 ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
// (2) 得到核心配置文件中創建的對象(獲取 Bean 實例) User user=(User) context.getBean("user");
user.print(); } } |
【made by siwuxie095】
表達式SpEL方式的屬性註入