401
技術社區[雲棲]
關於SSM的一些不成熟的總結-.-
Mybatis
使用
導jar包
建立Model類 必須具有setter和getter方法
創建mybatis-config.xml文件
創建UserMapper文件寫sql語句
回到mybatis-config.xml中配置mappers標簽
寫代碼寫代碼完成功能 讀取mybatis-config
可通過注解方式寫sql語句
具體就是在到接口上寫sql語句
mybatis-config。xml中 擁有的標簽有
駝峰命名的標簽
typeAlias 起別名的標簽
environment 環境配置
包括數據庫的鏈接(dataSource)
最重要的是關於接口映射文件的sql語句配置
兩種方式
xml配置
注解配置
字符串拚接用$
參數的話用#
Mapper中
where標簽用來拚接條件 會忽略緊跟著的一個and
foreach循環
collection 循環的集合 默認參數名字計較array
item 集合中的每個元素
separator :for 循環拚接後的每個字符串之間使用這個分隔符分隔
open for 左邊的語句 可以不使用
獲取插入數據的主鍵
方案1 使用selectKey
方案2 在insert標簽曾加 userGenertatedkeys="true" keyProperty="id" 兩個屬性
Reflect反射
通過Class獲取累的結構 並操縱其中的內容(屬性 構造方法 方法等)
獲取這個對象的類 對象
.java編譯為class在使用的時候會加載到內存中的方法區
表明這個類的結構 父類 接口 類型 屬性 方法等內容
可以通過 對象的getClass方法或者類的class屬性 獲取表示這個類結構的Class對象
================Spring==========================
使用dao中的方法
dao.saveUser
使用spring後不再通過new創建對象了 而是從spring框架裏獲取要使用的對象
通常是通過名字獲取
這樣我們可以把要使用的對象的名字寫在配置文件中 隻需要通過
修改配置文件即可實現適用對象的替換 而不需要修改代碼重新編譯程序
IOC 控製反轉
UserDao對象的創建從UserServiceImpl移動到了spring容器中
一個類在spring中進行注冊後 其他類就可以通過他注冊的信息獲取這個類
的對象
DI:dependency Inject 依賴注入 創建對象時動態為屬性賦值
兩種方式
setter 注入 和構造方法注入
IOC 是Spring 幫我們創建對象 DI是Spring幫我們為屬性賦值
創建對象的時候為屬性賦值
通過setter方法進行設置
通過constru方法進行設置
使用spel語言賦值 寫一些簡單的java代碼
P標簽
需要引入 xmlns:p="https://www.springframework.org/schema/p"
在bean標簽的屬性中使用p:屬性名=“”進行賦值操作
對象賦值需要使用ref 包括p標簽也是p:屬性名-ref=""bean 的id
id 唯一標識 不能重複
name 設置名字 如果id的話 可以和別的重複 否則不能
class 類的全名 包名+類名
scope 設置創建模型
singleton 單例
prototype 多列
init-method/destroy-method 在對像創建和銷毀的時候調用的方法
隻有在singleton下有效 並且方法不能有參數
lazy-init 默認false 在bean factories 創建的時候 創建注冊過的所有單列類
bean factories 在第一使用getBean獲取單例對象的時候創建
設置為true就是懶加載 隻有第一次使用的時候才會去創建對象
autowire 自動把注冊過的bean 關聯到bean對象的屬性上
bytype 如果注冊過的bean的類型和屬性類型一致 那麼進行賦值操作
自動把user複製給car的own屬性 疑問他們類型一致
byName 根據注冊過的bean的名字自動注冊屬性
通過配置文件 切換不同的功能
IOC 把對象的創建交給Spring 降低代碼類和類之間的耦合度
方便我們對程序進行擴展和維護
AOP 麵向切麵編程
再不修改源代碼的基礎上增加新的功能
在日誌和異常方麵很常用
導3個包
Spring aop aspects
AspectJ aspectjweaver
我們可以使用注解的方式配置 就不需要在這裏增加bean標簽了 可以節省許多代碼
注解需要context。jar的支持 屬於4個jar核心之一
使用的時候引入xml的schema文件 然後配置context:component-scan標簽即可
自動掃描base-package中所有的類中的相關注解 把信息注冊到IOC容器中
在類名上添加注解標簽即可注冊為bean 接收IOC容器管理
以下四個標簽出了名字使用的時候沒有任何區別
隻是Spring推薦我們在不同的場景使用跟適合的標簽
@Component 組件 工具
@Service Service層
@Repository Dao層
@Controller Controller層
默認名字是類名首字母小寫userServiceImpl@Service(“自定義名字”)
@Scope(“單列多例requestsession”)設置生命周期
@Autowired 自動注入屬性 byType required=false 找到不不報錯
@Resource 自動注入屬性 byName=byType @Resource(“name=bean”)指定bean的名字
@Autowired最常用 屬性名很少和Bean的名字匹配
@Value 可以簡單注入值
以上也可以寫在setter方法上 一般沒這麼做
如果有多個類型相同的bean 那麼需要使用下麵指定一個 否則會報錯
@Qualifier(“bean的名字”)強製按照名字注入
=====Spring-mvc=================================================
@controller 表示這是一個處理controller的請求
@RequestMapping("/view/welcome") 表示使用welcome()方法處理welcome請求
返回值表示請求處理完畢 跳轉到指定的welcome。jsp
默認情況下 不區分get post等方式 如果需要區分的話增加method參數
method=RequestMethod.GET
@RequestParam(value="name"required=false,defaultValue="world")
把請求中的name的值綁定在後邊方法的參數上
required=false 說明這個參數不是必需的 如果請求中沒有那麼使用默認值
defaultValue="World"
如果參數比較多 可以增加參數 保證屬性名和參數名對應即可
如果參數比較多 可以直接封裝為對象 保證屬性名和參數名對應即可
Spring MVC 項目中隻有一個 servlet,就是:DispatcherServlet
所有的請求全部交給它來處理
接收到請求以後會去查詢 handleMapping 獲取處理請求的 Controller
handleMapping 是一個類似於 Map 的結構,存儲了 url 和 對應的 controller
創建 Controller 對象,傳入 request 和 response,由 Controller 處理請求
不同的 Controller 調用不同的 Service 完成不同的功能
返回 ModelAndView 的對象給 DispatcherServlet
DispatcherServlet 解析 ModelAndView 後做出響應,再瀏覽器展示對應的頁麵和數據
最後更新:2017-10-19 21:03:45
上一篇:
CloudDBA最佳實踐-TOP SQL優化分析數據庫性能問題
下一篇:
通過虛擬機的hdfs讀取本地mysql上的文件
poj 1511 Invitation Cards dijkstra+heap
怎麼估算空間利用率?新研發傳感器分分鍾搞定!
uva 111 - History Grading LCS
2017國際反病毒大會 亞信安全倡導“消滅移動終端”化解移動威脅
magento -- 開發必備插件三
sendBroadcastAsUser——Calling a method in the system process without a qualified user
即學即用:Pandas入門與時間序列分析
windows 2008 安裝mysql5.5.54
雲棲大會即將開講!IoT合作夥伴計劃專場邀您參與!
智慧醫療來臨 這些風險我們必須規避