簡介
依賴注入和控制反轉大致意思相同,其含義爲:當一個對象調用另一個對象時,傳統方法使用的是“ new 被調用者”,在spring中則是通過使用容器方法來創建被調用的實例,即在xml文件中創建實例。我們在編碼時只需要根據組件間的依賴關係進行組裝即可。
依賴注入的類型
使用時entity中需要有對用的構造函數 或 setter方法
1、構造方法注入
id: bean的名稱
class:需要實例化的類
name:屬性名
value:賦值
<bean id="" class="">
<!-- 使用setter方法 依賴注入數據訪問層組件 -->
<contructor-arg name="" value=""></property>
</bean>
2、setter方法注入
id: bean的名稱
class:需要實例化的類
name:屬性名
value:賦值
<bean id="" class="">
<!-- 使用setter方法 依賴注入數據訪問層組件 -->
<property name="" value=""></property>
</bean>
使用setter方法也可以引用之前配置過得bean(使用ref)
<bean id="userDao" class="com.sunqg.dao.imp.UserDaoImp"></bean>
<!-- 配置創建service的實例 -->
<bean id="userService" class="com.sunqg.service.imp.UserServiceImp">
<!-- 使用setter方法 依賴注入數據訪問層組件 -->
<property name="userDao" ref="userDao"></property>
</bean>
登錄案例(主要代碼)
public class TestLogin {
@Test
public void main(){
//1.加載applicationContext文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.通過spring獲取實例
UserService userService = (UserService)ctx.getBean("userService");
boolean flag = userService.login("admain", "123456");
if(flag)
System.out.print("登錄成功!");
else
System.out.print("登錄失敗");
}
}
<?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">
<!-- 配置創建UserDaoImp的實例 -->
<bean id="userDao" class="com.sunqg.dao.imp.UserDaoImp"></bean>
<!-- 配置創建service的實例 -->
<bean id="userService" class="com.sunqg.service.imp.UserServiceImp">
<!-- 使用setter方法 依賴注入數據訪問層組件 -->
<property name="userDao" ref="userDao"></property>
</bean>
</beans>