日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入

發布時間:2025/3/8 javascript 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

🛫更多ssm知識見SSM_面向CRUD編程專欄

🚕本博客總結自黑馬程序員的ssm框架視頻

🚒博主對于該知識尚在學習階段

🚄如果發現存在問題請毫不吝嗇的指出

🚀🚀扎哇太棗糕的博客主頁🚀🚀

目錄

1 Spring簡介

2 xml配置文件

3 依賴、數據注入問題


1 Spring簡介

? ? ? ? Spring是分層的Java SE/EE階段應用的full-stack輕量級開源框架,主要以兩個部分IOC??(Inverse Of Control 反轉控制)和AOP? (Aspect Oriented Programming 面向切面編程)為內核。所謂的full-stack就是說提供了web層的Spring MVC、DAO層的JDBC模板、業務層的事務管理等眾多的企業級應用技術,除此之外還能整合開源世界眾多著名的第三方框架和類庫,逐漸成為使用最多的Java EE企業應用開源框架。

? ? ? ? 了解完Spring是什么,接下來學習一下Spring的發展歷程,Spring框架的前身是IBM提出的EJB,2005年Spring之父羅德·約翰森(Rod Johnson)發表Expert One-on-One J2EE Development without EJB一書被認為是Spring框架的雛形,再后來經過幾年的發展就有了我們現在學習的Spring框架。

?從高斯林和約翰森兩位大佬的發型就能看出來,學Java必定是前途無量。

Spring體系結構

我們對Spring的學習是按照它的體系結構從下往上開始學習的

?Spring快速入門開發

學習Spring之前

????????在使用Spring之前想要在UserDaoDemo的main方法里調用UserDaoImple類中的save方法,就要先使用多態創建對象就是通過new創建,再使用創建出來的UserDao對象調用save方法。這樣做不好的地方就是:將創建對象寫死(固定)了,編碼過度耦合,代碼里面創建的是什么對象就只能用什么對象。

學習Spring之后

????????使用Spring就可以通過xml配置文件實現解耦合,通過xml配置文件的配置和getBean方法的配合就可以動態的修改創建對象,具體步驟如下:

目錄結構:

?第一步:通過maven導入spring-context對應的依賴坐標

第二步:編寫UserDao對應的接口和實現類?

?第三步:創建applicationContext.xml配置文件并配置id標識標識 UserDaoImpl類

第四步:在UserDemo中通過Spring的API獲得Bean并調用方法

控制端運行結果

紅色的是打印的日志信息而非報錯

2 xml配置文件

Bean標簽的配置

屬性:

id:Bean在Spring容器中的唯一標識,在一個xml配置文件內部所有Bean標識的命名不可與之重復

class:Bean的全限名,指定這個id標識所對應的Bean類。Spring框架底層利用反射通過這個全限名對應Bean類的無參構造器創建對象。

scope:指的是對象創建的模式,有以下五中取值

  • singleton:是scope屬性的默認值,相當于餓漢單例模式,也就是說Bean對象只在使用xml配置文件創建Spring客戶端對象的時候創建一次,之后使用getBean方法獲取Bean對象的時候返回的都是之前創建好的Bean對象。singleton一共就在Spring的核心文件被加載時創建一次一個Bean對象存儲在容器里,當應用卸載銷毀容器時對象隨之銷毀。
  • prototype:相當于多例設計模式,也就是說在每一次使用Spring客戶端對象的getBean方法時都會創建一個新的Bean對象并返回。prototype是使用幾次getBean方法就會創建幾個Bean對象,當對象長時間不用的時候就會被java的垃圾回收機器回收對象也就銷毀了。
  • request:web項目中,Spring創建一個Bean對象并將其存入到request域中
  • session:web項目中,Spring創建一個Bean對象并將其存入到session域中
  • global session:web項目中,應用于portlet環境中,如果沒有portlet環境的話就相當于session

init-method:指定Bean類中的初始化方法

destory-method:指定Bean類中的銷毀方法

import標簽

import標簽是用來將其他配置文件的配置內容加載到這個配置文件中?

?Bean實例化的三種方法:

  • 無參構造方法實例化(重點):無參構造方法其實就是我們上面講的那些知識點
  • 工廠靜態方法實例化:通過工廠中的靜態方法進行實例化,只需創建一個工廠類,類里面創建一個靜態方法,方法返回一個無參構造器創建的Bean對象,再設置xml文件即可

  • ?工廠實例方法實例化:通過工廠中的實例方法進行實例化,與工廠靜態方法的區別就是,用于返回一個無參構造器創建的Bean對象的方法是實例方法,xml配置文件也不一樣,要更加復雜些。

3 依賴、數據注入問題

引出問題:

? ? ? ? 現在有這么一個情況,除了上面已經有的dao層之外,新建一個業務層service。service層的結構和dao層相似,也是一個接口和實現類。目錄結構如下:

UserServiceImpl類和UserDaoImpl類也都通過xml配置文件的bean標簽進行配置。

?此時有一個需求,就是要在service層的UserServiceImpl類里的cast()方法中調用UserDaoImpl類的save()方法,實現思想就是在UserServiceImpl類里的cast()方法中使用之前UserDaoDemo的那一套進行調用UserDaoImpl類的save()方法

?在新建的UserController類中使用那一套調用UserServiceImpl類里的cast()方法

這么一來,就可以在Spring容器外部將Dao組裝到了Service?那么,有沒有一種方式,可以在Spring容器內部就將Dao組裝到了Service呢?有的,于是乎就出現了依賴注入。

依賴注入:

? ? ? ? 依賴注入(Dependency Injection)是Spring框架核心IOC(控制反轉)的具體實現。在編程的時候通過控制反轉就可以把對象的創建交給Spring 容器,IOC只是降低他們之間的依賴關系并不會消除依賴,service層仍會調用dao層的方法。那么,該如何將UserDao注入到UserService的內部呢?

依賴注入的兩種方式:

set方法注入

就相當于將userDao對象通過setUserDao方法當做一個參數直接傳給UserServiceImpl類中,當創建UserServiceImpl類的對象調用cast()方法時,cast()方法內部就會使用setUserDao方法傳過來的userDao對象調用save()方法

具體setUserDao方法參數的userDao對象是如何創建的,這就要到xml配置文件中設置了

xml配置文件的另一種配置方式的寫法,知道即可還是上面的<property>標簽的可讀性更加高

?通過set方法注入的方式,就可以在Spring容器內部時就將Dao組裝到了Service

?set方法注入的關鍵就是,xml配置文件<property>標簽將Dao組裝到了Service,并在再service層的實現方法上用set方法接收dao層的對象,并使用對象對dao層進行操作。

構造方法注入

創建一個有參構造器用于接收UserDao對象

使用<constructor-arg>標簽配置

?? set方法注入和構造器注入的方式其他都一樣,就是接收UserDao的載體set注入是私有屬性的setter方法、構造器注入是有參構造器,xml配置文件的標簽set注入是<property>、構造器注入是<constructor-arg>

set方式注入其他類型數據

????????以上兩種依賴注入的方式不只能用于注入對象,還可以用于注入普通數據類型、引用數據類型和集合數據類型,接下來就以set注入方式為例演示

普通數據類型

創建變量相應的setter方法

配置xml配置文件

?spring客戶端對象獲取Bean對象,并調用save方法

數組、集合、propetries

propetries是Java的一個類以鍵值對的形式存儲配置信息

setter方法

xml配置文件?

??spring客戶端對象獲取Bean對象,并調用save方法

總結(注入數據時配置文件的配置格式)

上圖傳作資源,如有用可自行下載:下載地址?

? ? ??

下一篇:【SSM面向CRUD編程專欄 2】Spring相關API 數據源(連接池)的配置 注解開發 整合junit?

總結

以上是生活随笔為你收集整理的【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。