第一個Spring程式(程式碼篇)
前言
上一篇介紹了一些理解和概念,本篇結合程式碼談談,本篇適合小白
程式碼在 github 倉庫
IoC - 第一個 Spring 程式
先來個 Demo 感受一下,程式碼是基於 Maven 構建的,如果不熟悉 maven 可以檢視公眾號 JavaPub 目錄學習。
-
建立專案
在 Idea 新建 Maven 專案,目錄結構如圖
-
匯入依賴 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<
project
xmlns=
"
xmlns:xsi=
"
xsi:schemaLocation=
">
<
modelVersion>4.0.0
</
modelVersion>
<
groupId>javapub.rodert
</
groupId>
<
artifactId>firstSpringProject
</
artifactId>
<
version>1.0-SNAPSHOT
</
version>
<
dependencies>
<
dependency>
<
groupId>junit
</
groupId>
<
artifactId>junit
</
artifactId>
<
version>4.13
</
version>
<
scope>test
</
scope>
</
dependency>
<
dependency>
<
groupId>org.springframework
</
groupId>
<
artifactId>spring-context
</
artifactId>
<
version>5.2.7.RELEASE
</
version>
</
dependency>
<
dependency>
<
groupId>org.springframework
</
groupId>
<
artifactId>spring-core
</
artifactId>
<
version>5.2.7.RELEASE
</
version>
</
dependency>
<
dependency>
<
groupId>org.springframework
</
groupId>
<
artifactId>spring-beans
</
artifactId>
<
version>5.2.7.RELEASE
</
version>
</
dependency>
</
dependencies>
</
project>
-
在專案的 src
目錄下建立一個名為javapub.rodert
的包,然後在該包中建立一個名為PersonDao
的介面,並在介面中新增一個add()
方法
package javapub.rodert;
/**
*
@author wangshiyu rodert
*
@date 2020/7/2 20:13
*
@description
*/
public
interface
PersonDao {
public
void
add
();
}
-
建立介面實現類 PersonDaoImpl
在
javapub.rodert
包下建立
PersonDao
的實現類
PersonDaoImpl
package javapub.rodert;
/**
*
@author wangshiyu rodert
*
@date 2020/7/2 20:14
*
@description
*/
public
class
PersonDaoImpl
implements
PersonDao {
public
void
add
() {
System.out.println(
"執行成功!!!");
}
}
-
建立 Spring 配置檔案
Spring 配置檔案是整合 Spring 的核心
<?xml version="1.0" encoding="UTF-8"?>
<
beans
xmlns=
"
xmlns:xsi=
"
xsi:schemaLocation=
">
<
bean
id=
"personDao"
class=
"javapub.rodert.PersonDaoImpl"/>
</
beans>
-
到現在一個 Spring 程式已經搭建完成,測試一下
新建測試類
package javapub.rodert;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
*
@author wangshiyu rodert
*
@date 2020/7/2 20:15
*
@description
*/
public
class
PersonDaoTest {
@Test
public
void
test1
(){
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext(
"ApplicationContext.xml");
PersonDao personDao = (PersonDao) applicationContext.getBean(
"personDao");
personDao.add();
}
}
返回結果:
執行成功!!!
使用 JUnit 測試執行測試方法,執行成功。在程式執行時,物件的建立並不是透過
new
一個類完成的,而是透過 Spring 容器管理實現的。這就是
Spring IoC
(控制反轉) 容器思想的工作機制。
Spring 依賴注入的三種方式
依賴注入(Dependency Injection,DI)和控制反轉含義相同,它們是從兩個角度描述的同一個概念。
當某個 Java 例項需要另一個 Java 例項時,傳統的方法是由呼叫者建立被呼叫者的例項(例如,使用
new
關鍵字獲得被呼叫者例項),而使用 Spring 框架後,被呼叫者的例項不再由呼叫者建立,而是由 Spring 容器建立,這稱為控制反轉。
屬性 setter 注入
指 IoC 容器使用 setter 方法注入被依賴的例項。透過呼叫無參構造器或無參 static 工廠方法例項化 bean 後,呼叫該 bean 的 setter 方法,即可實現基於 setter 的 DI。
構造方法注入
指 IoC 容器使用構造方法注入被依賴的例項。基於構造器的 DI 透過呼叫帶引數的構造方法實現,每個引數代表一個依賴。
根據註解注入
@Autowired
宣告:參考來源網際網路,有任何爭議可以留言。站在前人的肩上,我們才能看的更遠。
本教程純手打,致力於最實用教程,希望多多轉發支援,對我真的很重要。 歡迎來我公眾號,希望可以結識你,更多原創PDF,微信搜尋:JavaPub,回覆:【666】,也可以催更。
有任何問題都可以來談談 !
下篇SSM整合
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69977829/viewspace-2702471/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 第一個spring程式Spring
- Spring的第一個程式Spring
- 初識 SpringMVC,執行配置第一個Spring MVC 程式SpringMVC
- MyBatis第一個程式MyBatis
- 控制程式碼表篇——程式控制程式碼表
- 第一個Mac OS X專案(純程式碼)Mac
- 第一個C++程式C++
- 第一個程式Hello world
- 三、第一個SpringBoot程式Spring Boot
- CSS匹配第一個li元素程式碼例項CSS
- Java實現第一個程式碼,輸出 hello worldJava
- Python 萬能程式碼模版:爬蟲程式碼篇Python爬蟲
- 第一段JavaScript程式碼JavaScript
- 你的第一個Django程式Django
- 第一個ncurses程式: hello world !!!
- java概述與第一個程式Java
- 你的第一個SpringMVC程式SpringMVCC程式
- 第一個 Angular 應用程式Angular
- 編寫第一個Qt程式QT
- 程式碼大全回顧篇...
- 老農的程式人生第一篇
- 控制程式碼表篇——全域性控制程式碼表
- 分享個程式碼
- Spring Boot使用Allatori程式碼混淆Spring Boot
- AI為Spring Boot整個程式碼庫新增了註釋AISpring Boot
- (一)你的第一個Socket程式
- 13_Linux第一個程式HelloWorldLinux
- 解讀第一個C++程式C++
- 常用程式碼 | 系統配置篇
- 位元組碼程式設計 Byte-buddy 篇 一 基於Byte Buddy語法建立的第一個 HelloWorld程式設計
- JVM學習第一篇思考:一個Java程式碼是怎麼執行起來的-上篇JVMJava
- Qt學習第一篇(windows下安裝和程式碼規範)QTWindows
- 微信小程式第一篇(開始)微信小程式
- 軟體安裝程式第一篇(原理)
- PS指令碼篇--1.程式碼是什麼,寫程式碼幹嘛?指令碼
- 【轉】Kinect嚐鮮(1)——第一個程式
- 草根學Python(一)第一個Python程式Python
- JDK下載與第一個java程式JDKJava