**
文章目錄
- 一、Spring綜述
- 1.1 jdk環境依賴
- 1.2 Spring介紹
- 二、IOC理論推導
- 2.1 前述
- 2.2 第一種業務呼叫:
- 2.3 第二種業務呼叫:
- 三、IOC創建物件的方式
- 3.1 無參構造創建物件
- 3.2 使用有參構造來創建物件
- 四、Spring配置
- 4.1 別名:
- 4.2 Bean的配置:
- 4.3 import:
- 五、心聲
一、Spring綜述
1.1 jdk環境依賴
從Spring Framework 5.1開始,Spring需要JDK 8+ (Java SE 8+),并提供對JDK 11 LTS的開箱即用支持,建議將Java SE 8 update 60作為Java 8的最低補丁版本,但通常建議使用最新的補丁版本,
1.2 Spring介紹
spring分為許多模塊,應用可以選擇他們需要的模塊,它的核心模塊是corecontainer(也就是核心容器),包括配置模塊和DI依賴注入,除此之外,Spring框架還為不同的應用程式體系結構提供基礎支持,包括訊息傳遞、事務資料和持久性以及web,
二、IOC理論推導
2.1 前述
UserDao介面
UserDaoImpl實作類
UserService業務介面
UserServiceImpl業務實習類
基于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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean>
<!-- more bean definitions go here -->
</beans>
2.2 第一種業務呼叫:
在實作類中:
private UserDao userDao = new UserDaoMysqlImpl();
在測驗實作類中:
UserService userService = new UserServiceImpl();
userService.getUser();
在我們之前的業務中,用戶的需求可能影響我們原來的代碼,我們需要根據用戶的需求去修改原代碼!
如果程式代碼量十分大,修改一次的成本代價十分昂貴!
2.3 第二種業務呼叫:
我們使用一個Set介面實作
在實作類中:
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
在測驗實習類中:
((UserServiceImpl) userService).setUserDao(new UserDaoMysqlImpl());
userService.getUser();
}
之前,程式是主動創建物件!控制權在程式員手上,
使用了set注入后,程式不再具有主動性,而是變成了被動的接受物件!
這種思想,從本質上解決了問題,我們程式員不再去管理物件的創建了,系統的耦合性大大降低;可以更加專注在業務的實作上!這是IOC的原型!
三、IOC創建物件的方式
3.1 無參構造創建物件
在使用組態檔來創建物件時,默認的是無參構造,在物體類中,無參構造一般不會寫出來,只有在是物體類中有了有參構造,無參構造猜會無效,
3.2 使用有參構造來創建物件
第一種:
下標賦值(index)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg index="0" value="自己賦值"></constructor-arg>
</bean>
第二種:
型別(type,這里不建議使用這種方式)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg
type="java.lang.String" value="liaopenghui">
</constructor-arg>
</bean>
第三種:
引數名(name)
<bean id="user" class="com.liao.pojo.User">
<constructor-arg name="name" value="自己賦值"></constructor-arg>
</bean>
總結:在組態檔加載的時候,容器中管理的物件就已經初始化了!
四、Spring配置
4.1 別名:
<bean id="user" class="com.liao.pojo.User">
<constructor-arg name="name" value="自己賦值"></constructor-arg>
</bean>
如果添加了別名,我們也可以使用別名獲取到這個物件
<alias name="user" alias="user2"></alias>
4.2 Bean的配置:
- id: bean 的唯一識別符號,也就是相當于我們學的對像名
- class: bean 物件所對應的全限定名: 包名+型別
- name: 也是別名,而且name 可以同時取多個別名,可以通過空格、逗號以及分號分開
<bean id="userT" class="com.liao.pojo.UserT" name="userT2 userT3">
<property name="name" value="liaopenghui"></property>
</bean>
4.3 import:
import,一般用于團隊開發使用,它可以將多個組態檔,匯入合并為一個,
假設,現在專案中有多個人開發,這三個人負責不同的類開發,不同的類需要注冊在不同的bean中,我們可以利用import, 將所有人的beans.xml合并為一個總的!
列如有這么幾個xml組態檔:
beans1.xml
beans2.xml
beans3.xml
將這三個組態檔同時匯入一個總的組態檔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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="beans1.xml"></import>
<import resource="beans2.xml"></import>
<import resource="beans3.xml"></import>
</beans>
使用的時候,直接使用總的配置就可以了,
想要詳細了解更多Spring,這里建議大家去官方檔案學習,
五、心聲
Sping5后續學習會相繼發布,這是小白第一次些文章,我會繼續努力加油,寫出優秀的文章,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/272226.html
標籤:java
上一篇:你能區分這幾種Java集合型別?
下一篇:初學java多型
