Spring 學習筆記1--三種例項化Bean方法、註解
阿新 • • 發佈:2018-12-07
首先通過一個簡單的程式學習Spring在程式中的運用。
定義一個介面:
package com.spring.interfacebean;
public interface PersonBean
{
void show();
}
這個介面的實現類:
Spring配置的xml程式碼:package com.spring.implbean; import com.spring.interfacebean.PersonBean; public class UserBean implements PersonBean { public void show() { System.out.println("Hello world"); } }
<?xml version="1.0" encoding="UTF-8"?>
寫一個測試類,呼叫上述程式實現功能:
該程式是通過例項化bean的方法來實現功能。在Spring中對bean的例項化有三種方法。package com.spring.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.spring.interfacebean.PersonBean; public class TestClass { @Test public void testMethod() throws Exception { //讀取配置檔案 ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml"); //獲取UserBean的例項 PersonBean bean=(PersonBean)ctx.getBean("userBean"); //呼叫方法 bean.show(); } }
1,使用類構造器例項化物件
2,使用靜態工廠的方法例項化物件
3,使用例項工廠的方法例項化物件
三種例項化物件的程式碼如下所示:
<?xml version="1.0" encoding="UTF-8"?>
BeanFactory類的程式碼如下所示:
package com.spring.factory; import com.szy.spring.implbean.UserBean; import com.szy.spring.interfacebean.PersonBean; public class BeanFactory { //使用靜態工廠的方法例項化使用 public static PersonBean UserBeanService() { return new UserBean(); } public PersonBean getUserBeanService() { return new UserBean(); } }
在Spring中的註解:
@Service :用於標註配置業務層(service層)元件
@Cotroller:用於標註配置控制層元件
@Reponsitory:用於標註一般的DAO層Bean物件
@Component:泛指元件,對一般不好歸入以上三種中的一種是使用
Spring的自動裝配:
自動裝配是指不用顯示的手動配置java Bean之間的依賴關係,而是讓Spring依據某種規則自動將合適的物件注入目標物件中。Spring中常用@Autowire和@Resource進行自動裝配。
@Autowire:預設是按照物件的資料型別進行自動裝配
@Autowire
private UserDao userDao;
Spring框架會自動將型別為UserDao的物件注入進來。
@Resource:預設是按照名稱或者ID進行自動裝配,只有找不到匹配的名稱或者ID時才按照型別進項裝配
@Resource(name="userDao")
private UserDao userDao;
Spring框架在執行時會根據名稱或者ID為“userDao”的物件注入進來。