8月
11
2010
分類:
最近更新:
2010-08-11
Java Spring framework 開發人員面試題
日前我指導公司一位新進人員學習 Java Spring framework 的基礎觀念。在這個過程中,我留意到 Java Spring framework 一些相當基礎而簡單的觀念很適合設計成問答題。所以我設計了三道連環的試題,檢視開發人員是否真的搞懂了。
唉,為什麼我這個討厭 Java 語言的人還會跑去指導別人關於 Java Spring framework 的事呢?總歸一句話:人在江湖身不由己。我也是要混飯吃的,就別問我原因了。
Question 1
今有一 PlainOldClass 類,其定義如下列。
class PlainOldClass {
private int value;
public PlainOldClass(int v) {
this.value = v;
}
public int getValue() {
return this.value;
}
}
PlainOldClass 是一個既有類別,試用 Spring framework 的 bean 語法定義它,以1為其初值。
<bean id="plainOldClass" class="PlainOldClass">
<constructor-arg>
<value>1</value>
</constructor-arg>
</bean>
Question 2
在應用程式的 Spring 配置文件中,有下列 bean 定義。
<bean id="newClass" class="NewClass">
<property name="value">
<ref bean="plainOldClass"/>
</property>
</bean>
應用程式包含一個 ExampleComponent 元件,其定義如下列。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class ExampleComponent {
@Autowired
private NewClass c;
public int test() {
return c.getValue();
}
}
根據上述 Spring framework 的 bean 定義內容以及 ExampleComponent 的內容,試以 Java 語言寫出可用的 NewClass 類別。
class NewClass {
private PlainOldClass value;
public setValue(PlainOldClass v) {
this.value = v;
}
public int getValue() {
return this.value.getValue();
}
}
Question 3
承前兩題,試描述 Spring framework 做了哪些事,使得 ExampleComponent 之中不需要寫出如何初始化 c 的程式碼。
//根據 bean plainOldClass
plainOldClass = new PlainOldClass(1);
//根據 bean newClass
newClass = new NewClass();
newClass.setValue(plainOldClass);
//根據 @Autowired
component.c = newClass;
相關文章
樂多舊網址: http://blog.roodo.com/rocksaying/archives/13401403.html
樂多舊回應