iT邦幫忙

0

Java Spring 的DI的筆記

  • 分享至 

  • twitterImage
  •  

IoC及DI的的筆記

在JAVA中用new來建立新物件。

Cat cat=new Cat();
cat.play();
Dog dog=new Dog();
dog.play();

若用spring 改寫變成

BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("D://applicationContext.xml"));
Cat cat =(Cat)beanFactory.bean("Cat");
Dog dog =(Dog)beanFactory.bean("Dog");

new Cat()及new Dog()就變成在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" 
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans.xsd">

	<bean id="Cat" class="cource.xxx.Cat" />
	<bean id="Dog" class="cource.xxx.Dog" />
	
</beans>

有點像是所有的宣告,都在設定檔中完成,java檔就是專心寫商業邏輯。

但程式是似乎沒有變的更簡單,還要轉一圈去設定,是不是比較麻煩呀!!

但在java頁面中有時要做很多設定的類別一多起來,那java的頁面就變的比較複雜。

Cat cat=new Cat();
cat.setShoe("愛迪達");
cat.setClothes("館長牌");
cat.setWeight("78");
....

但若這些宣告放在xml中,.java檔就會變的比較乾淨。

那你會不會說,那xml還是要設定呀,這樣沒有比較省工。還是要花費相同的力氣。

但如果多個地方都要用該類別,那設定在xml就只要設定一次,.java檔就不用每一次要宣告一次,每一頁都做一堆設定。

就好像是JDBC的設定,將資料來設定在Spring中,在java頁面中就不用每一頁都要設定。就省下很多時間。

<bean id="dataSource"
	class="org.springframework.jdbc.datasource.DriverManagerDataSource">
	<property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" />
	<property name="url" value="jdbc:derby://localhost:1527/myDB" />
	<property name="username" value="root" />
	<property name="password" value="sa" />
</bean>

而DI及IOC就可以讓你只要設定在xml,之後就不用在java檔中一直設定,只要接受該物件注入即可 。

另外,如果你在程式中要替換某個class,把它更新到更好的版本。那在過去要每個文件檢查是否有使用該class,而在spring中,只要到xml去替換就行了。

註:後來也開發了只設定定在java檔中的設定。一般都稱為config。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言