Spring + Spring MVC + MyBatis
:標準MVC模式
繼 SSH (Struts+Spring+Hibernate)以後,主流的 Java EE企業級 Web應用程序開源框架html
學習:關於SSM框架的優點web
輕量級容器框架,業務對象管理spring
面向切面編程,預編譯方式和運行時動態代理實如今不修改源碼狀況下給程序動態統一添加功能編程
代理模式
,創建在spring抽象事務管理之上的聲明性事務管理核心:橫切關注點的分離和織入
場景:日誌記錄,性能統計,安全控制,事務處理
其餘幾個重要概念安全
切入點springboot
切面mybatis
攔截器(Advisor)mvc
AOP攔截方法級別,OOP攔截對象級別。app
織入(Weaveing)
1.靜態織入方式框架
2.動態代理技術
Spring AOP,核心是反射,ProxyFactory或ProxyFactoryBean-->BeanPostProcessor(自動代理)
其中,自動代理有2種
AOP代理(AOP Proxy)
學習:對AOP代理的理解示例
控制反轉(Inversion of control),由容器建立和注入依賴對象,管理對象依賴關係
學習:通俗易懂Ioc講解
依賴注入(Dependenc Injection),實現 Ioc思想的核心,對象之間依賴關係由容器在運行時決定
實現 DI的核心是反射:實例化類時,經過反射調用類中set方法將事先保存在HashMap中的類屬性注入到類中
項目的運行和週期由 Ioc控制,事件的請求和反應由 DI控制
相對 Ioc而言,DI明確描述了「被注入對象依賴 IoC容器配置依賴對象」
學習:Ioc實例講解
spring IoC容器實例化Bean(工廠模式):BeanFactory,BeanDefinition,ApplicationContext
具體參見:https://www.jianshu.com/p/646c1f657144
spring DI實現依賴注入:
請求轉發和視圖管理
1.客戶端發送請求到DispacherServlet(分發器)
2.由DispacherServlet控制器查詢HanderMapping,找處處理請求的Controller
3.Controller調用業務邏輯處理後,返回ModelAndView
4.DispacherSerclet查詢視圖解析器,找到ModelAndView指定的視圖
5.視圖負責將結果顯示到客戶端
springboot配置
<!-- SpingBoot相關jar包版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <!-- SpringBoot核心jar包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- web開發包:包含Tomcat和springmvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringBoot熱部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>