理論知識-SSM知識點

spring

spring IOC創建對象的兩種方式
1.創建容器對象
2.在當前包的所在類下找有關bean的配置文件 測試方便

spring主配置文件創建對象的方式
1.調用無參構造器
2.調用帶參構造器
3.用工廠模式創建 工廠裏面分爲靜態方法和非靜態方法

spring給對象屬性賦值依賴注入的方式
1.構造函數賦值
2.set方法注入值
    分爲 普通字段賦值和集合屬性賦值(list map property)

di 處理依賴關係
四種方式
最常用的在主配置文件中通過set方法注入,在service接收dao注入值,在controller接收service注入值
內部bean
p名稱空間,給屬性注入值
自動裝配 配置簡單,但維護麻煩

配置方式和註解方式的區別
配置便於維護 但配置太多很繁瑣
註解開發方便簡化配置,但不利於後期維護,如果修改對象創建,關係處理等需要改代碼

Java中的代理 分爲

靜態代理
    1.目標對象必須實現接口
    2.代理對象要實現和目標對象一樣的接口
動態代理(jdk代理)
    目標對象一定要實現接口,代理對象不用實現接口
Cglib代理(spring默認支持) 也叫子類代理
    jdk動態代理有一個限制,使用動態代理的對象必須實現接口
    如果向代理沒有實現接口類,使用cglib
    1.目標對象可以不實現接口
    2.目標類不能final 如果final報錯
    3.方法是final/static,不會被代理攔截,會直接執行目標對象方法
    
代理總結
    1.目標對象有實現接口,使用jdk動態代理
    2.沒有實現接口,使用cglib代理
    3.沒有實現接口且爲final,不能進行aop編程,不能生成代理會報錯
    
spring生成代理對象的過程
    1.創建容器對象時,根據切入點表達式攔截的類,生成代理對象
    2.目標對象有實現接口,使用jdk動態代理
    3.沒有實現接口,使用cglib代理
    4.從容器獲取代理後的對象
    5.執行代理對象方法,運行時動態植入切面類中的通知

AOP(面向切面編程)是什麼
    實現原理就是Java動態代理,但是動態代理必須實現接口,所以spring的aop是用cglib實現的
    
事務
    一組操作的執行單元,相對於數據庫操作來講事務管理的是一組SQL指令(增刪改查)
    事務的一致性要求操作必須全部執行成功,出現任何一條SQL語句沒有執行成功,這一組
    操作會全部回滾
    
spring聲明式事務管理,就是粗粒度的事務控制

spring創建SessionFactory的方式
所有配置都在spring中完成

spring對dao操作的支持
spring提供了JDBCTemple模版的工具類,對原始的jdbc操作進行了簡化
---------------------------------------------------------------------------------------------------
mybatis

mybatis操作dao層 直接寫SQL語句 更加靈活
查詢操作:返回單條記錄時,表字段和對應實體屬性命名一致時可以不使用resultMap屬性配置,直接使用resultType="返回的全類名"
查詢操作:返回多條記錄時,返回結果配置的不是集合類型,而是集合元素的類型,參數通過Map等方式進行封裝

mybatis兩種查詢方式
association 用於多對一或一對一
collection 用於一對多或多對多

Mybatis和hibernate一樣,也使用緩存;緩存分爲一級緩存和二級緩存,一級緩存指在SqlSession內;二級緩存能被所有的SqlSession共享
mybatis簡化配置:掃描式加載SQL映射文件
---------------------------------------------------------------------------------------------------
springmvc
配置文件都需要配置什麼
前端過濾器,控制器,視圖解析器,中文亂碼處理

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