SpringMVC框架2nd summary

首先,項目分爲三個主要層次:controller\service\dao。
項目層次

Controller
  1. controller層中,主要是進行前端請求路徑的定向,對於檢索條件的基本賦值和對數據的初次封裝。簡單拿GET方法說,就是使前端和後端分別對應起來,前端發送了請求,後端通過controller知道前端發送了什麼請求,請求中包含的數據,比如分頁、檢索的某個id可以在controller中進行簡單的處理,使得後端處理後的數據能夠和前端需要的數據對應起來。
  2. condition作爲controller方法的入參,傳送的是請求的條件,如上面所說的分頁、檢索的某個ID等,在controller中,將這個條件傳送給service層,即controller需要調用service,將條件傳送到service後,service返回一個經過處理的需要的數據,controller再將數據進行包裝返回。
Service
  1. service層中,主要是對業務進行操作,比如進行字段的賦值,service從controller層獲取到條件,需要調用dao層的方法獲取數據庫的數據,dao層返回的數據在service層經過包裝成統一格式後返回。
  2. 比如簡單的查詢操作,獲取分頁數據,條件作爲入參傳到service層中,service調用dao層的方法獲取到數據,進行處理後返回查詢到的分頁數據。
Dao

dao層中只定義了方法,沒有進行具體的實現,因爲具體的實現使用xml文件來實行。調用dao層的方法其實是調用XML文件的數據庫操作。

XML文件

XML文件是進行數據庫的操作的文件,主要有數據庫語言組成。但是每個SQL塊需要綁定一個對應的dao方法,SQL塊中的語句也是爲了實現方法服務。每個方法也有作爲入參的condition條件,作爲出參的各種返回值。

Bean

我們重點來說說Bean層的結構。
Bean

ⅠBean是什麼

Java是面向對象的,對象需要有實例和方法,每個有實例和方法的類都必須經過實例化才能調用,Bean相當於是類的代言人或代理人,調用類的時候調用這些Bean來使用屬性和方法。

參考:Bean在Spring和SpringMVC中無所不在

Ⅱ Bean的裝配方式

Spring中注入bean可以減少代碼。有三種裝配方式:
① java顯示注入

public class MusicConfig {
@Bean
public CompactDiscService setCompactDiscService(){
return new CompactDiscServiceImpl();
}
}

或者

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean class="com.music.service.CompactDiscServiceImpl"></bean>
</beans>

② 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"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.music"/>

</beans>

③ Java的隱式注入
1) 在class中增加@compoment註解

@Component

public class CompactDiscServiceImpl implements CompactDiscService {
public void play() {
System.out.println("hello i go to study");

}
}

2) 增加spring 掃描bean 的config

@Configuration
@ComponentScan
public class MusicConfig {

}

注:可以採用@name的方式來替代@component的替代方案。
ComponentScan默認掃描@configuration目錄下的包,如果需要掃描多個包則配置@ComponentScan(basePackage={“system.com”,“video.com”})的方式就行註解即可

參考: springMvc自動裝備bean的方式

需要仔細閱讀的文章:

Spring系列(一):Spring MVC bean 解析、註冊、實例化流程源碼剖析
手寫SpringMVC:Bean管理(基石)
【springMVC基礎】spring獲取bean的幾種方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章