关于MVC框架和spring
簡介
MVC開始是存在于桌面程序中的,M是指業(yè)務(wù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。比如一批統(tǒng)計(jì)數(shù)據(jù)可以分別用柱狀圖、餅圖來表示。C存在的目的則是確保M和V的同步,一旦M改變,V應(yīng)該同步更新。
MVC指MVC模式的某種框架,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個(gè)核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。最典型的MVC就是JSP + servlet + javabean的模式
視圖是用戶看到并與之交互的界面。對老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,HTML依舊在視圖中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括Adobe Flash和像XHTML,XML/XSL,WML等一些標(biāo)識(shí)語言和Web services.
模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。例如它可能用像EJBs和ColdFusion Components這樣的構(gòu)件對象來處理數(shù)據(jù)庫,被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù),由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性
控制器
接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求,所以當(dāng)單擊Web頁面中的超鏈接和發(fā)送HTML表單時(shí),控制器本身不輸出任何東西和做任何處理。它只是接收請求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請求,然后再確定用哪個(gè)視圖來顯示返回的數(shù)據(jù)。
spring
spring是一個(gè)非常優(yōu)秀的java框架,其目標(biāo)是為了簡化java企業(yè)級開發(fā),spring出來已經(jīng)十幾年了,這期間也一直圍繞著這個(gè)目標(biāo)在進(jìn)行,springmvc、springboot、springcloud,這些技術(shù)也都是圍繞著簡化開發(fā)的目標(biāo)在努力,spring除了不能幫助我們實(shí)現(xiàn)業(yè)務(wù)邏輯代碼之外,其他的事情spring都盡量去幫我們簡化了,使用spring可以幫助我們節(jié)約大量開發(fā)時(shí)間。
1.IOC控制反轉(zhuǎn),是一種設(shè)計(jì)理念,將對象創(chuàng)建和組裝的主動(dòng)控制權(quán)利交給了spring容器去做,控制
的動(dòng)作被反轉(zhuǎn)了,降低了系統(tǒng)的耦合度,利于系統(tǒng)維護(hù)和擴(kuò)展,主要就是指需要使用的對象的組裝
控制權(quán)被反轉(zhuǎn)了,之前是自己要做的,現(xiàn)在交給spring容器做了。
2. DI依賴注入,表示spring容器中創(chuàng)建對象時(shí)給其設(shè)置依賴對象的方式,通過某些注入方式可以讓系統(tǒng)更靈活,比如自動(dòng)注入等可以讓系統(tǒng)變的很靈活
3. spring容器:主要負(fù)責(zé)容器中對象的創(chuàng)建、組裝、對象查找、對象生命周期的管理等等操作
Bean對象
由spring容器管理的對象統(tǒng)稱為Bean對象。Bean就是普通的java對象,和我們自己new的對象其實(shí)是
一樣的,只是這些對象是由spring去創(chuàng)建和管理的,我們需要在配置文件中告訴spring容器需要?jiǎng)?chuàng)建哪些bean對象,所以需要先在配置文件中定義好需要?jiǎng)?chuàng)建的bean對象,這些配置統(tǒng)稱為bean定義配置元數(shù)據(jù)信息,spring容器通過讀取這些bean配置元數(shù)據(jù)信息來構(gòu)建和組裝我們需要的對象。
Spring容器使用步驟
BeanFactory接口
常用的幾個(gè)方法
//按bean的id或者別名查找容器中的bean
Object getBean(String name) throws BeansException
//這個(gè)是一個(gè)泛型方法,按照bean的id或者別名查找指定類型的bean,返回指定類型的bean對象
T getBean(String name, Class requiredType) throws BeansException;
//返回容器中指定類型的bean對象
T getBean(Class requiredType) throws BeansException;
//獲取指定類型bean對象的獲取器
ObjectProvider getBeanProvider(Class requiredType);
ApplicationContext接口
這個(gè)接口繼承了BeanFactory接口,所以內(nèi)部包含BeanFactory所有的功能,并且在其上進(jìn)行了擴(kuò)展,增加了很多企業(yè)級功能,比如AOP、國際化、事件支持等等。
ClassPathXmlApplicationContext類
這個(gè)類實(shí)現(xiàn)了ApplicationContext接口,注意一下這個(gè)類名稱包含了ClassPath Xml,說明這個(gè)容器類可以從classpath中加載bean xml配置文件,然后創(chuàng)建xml中置的bean對象
AnnotationConfigApplicationContext類
這個(gè)類也實(shí)現(xiàn)了ApplicationContext接口,bean的定義支持xml的方式和注解的方式,當(dāng)我們使用注解的方式定義bean的時(shí)候,就需要用到這個(gè)容器來裝載了,這個(gè)容器內(nèi)部會(huì)解析注解來構(gòu)建構(gòu)建和管理需要的bean。
注解的方式相對于xml方式更方便一些.
Druid
Druid的主要功能如下:
是?個(gè)?效、功能強(qiáng)?、可擴(kuò)展性好的數(shù)據(jù)庫連接池。
可以監(jiān)控?cái)?shù)據(jù)庫訪問性能。
數(shù)據(jù)庫密碼加密
獲得SQL執(zhí)??志
擴(kuò)展JDBC
總結(jié)
以上是生活随笔為你收集整理的关于MVC框架和spring的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java的流对象和一些方法
- 下一篇: 【练习】c++用链栈实现计算器