spring_01
1、框架
1、框架是解決什么問題的?
1、框架是用來解決代碼冗余的問題
2、有利于團隊的協作開發
3、框架是用來解決低耦合和高內聚的問題
4、解決健壯性和安全性
2、STRUTS2和hibernate分別解決框架什么問題的?
struts2是一個mvc框架
hibernate是解決數據庫的操作:ORMAPPING
3、如何選擇一種更好的框架?
1、應該選擇一個大眾化的產品
2、健壯性和安全性都比較好的產品
3、有利于團隊開發
4、還在維護階段的
2、spring
1、說明
是一個架構性的框架
1、spring的安排
day01 spring Core IOC和DI容器
day02和day03的上午 spring AOP
day03的下午和day04 重新回顧struts2
day05 struts2,hibernate,spring的整合:源代碼級別的講解
2、springCore
1、知識點有兩個IOC,DI
2、IOC:
1、概念
把一個對象的創建、初始化、銷毀等工作交給spring容器來管理
2、好處
程序員只要從spring容器里把對象提取出來就OK了,至于對象是怎么樣在spring容器中創建出來的,不是
程序員關注的問題
3、例子
1、創建一個類
2、把一個類放入到spring容器中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--
把一個類放入到spring容器中,專有名詞叫bean,beans意味著可以放很個bean
-->
<!--
bean表示一個類
id是bean的唯一標識
class類的全名
-->
<bean id="helloWorld" class="com.tedu.big.spring1507.ioc.createobject.HelloWorld"></bean>
</beans>
3、啟動spring容器,讓spring容器創建該類的對象
4、從spring容器中 把該對象提取出來
5、對象調用方法
3、IOC的說明
1、啟動spring容器
創建一個spring容器的對象
2、spring容器為bean創建對象
1、默認的構造函數
在spring容器內部調用了該bean的構造函數
2、簡單工廠模式
構造函數的代碼是由程序員完成的,spring容器調用的是工廠類的靜態方法
3、實例工廠模式
spring容器先創建出一個工廠實例,利 工廠方法從而創建出對象
4、如果一個bean的scope為"prototype",該bean是多實例,那么在第4步的時候創建對象
3、執行spring容器中的bean的init方法
4、把一個對象從spring容器中提取出來
如果一個bean的scope為"prototype",這個時候才要創建對象
如果一個bean的scope為"singleton",那么不論取多少次都是同一個對象
5、對象調用方法
6、在關閉掉spring容器之前,執行該bean的detroy方法
只有執行applicationContext.close/desotry方法的時候才能調用destroy方法
該bean必須是單實例的
7、關閉spring容器
4、DI:
1、概念
依賴注入:給一個類中的屬性賦值的過程
2、一個類中屬性類型
public class Person{
private String id;
private Long length;
private Student student;
private List list;
private Set set;
private Map map;
private Properties properties;
}
3、給屬性注入的方式
1、xml
1、setter方法
2、構造器
2、注解
1、注意事項
1、注解是一個標識是針對程序員說的
2、有注解,就應該有注解解析器
3、注解不能單獨存在
4、注解的應用是為了簡化開發,減少冗余
2、依賴注入的注解
@Resource 一般情況下標注在屬性上
3、類掃描的注解
@Compontent
@Controller 標注在action層的
@Service 標注在service層
@Repository 標注在dao層
5、IOC和DI的意義
1、例子
文檔管理系統
Document:是一個抽象的文檔
read
write
WordDocument:是一個具體的文檔
PDFDocument:是一個具體的文檔
ExcelDocument:是一個具體的文檔
DocumentManager:文檔的管理類
Document document;
read
write
2、MVC例子
3、意義:
在代碼端的完全的面向接口編程
6、當IOC和DI結合在一起的時候,執行順序(默認的配置)
1、啟動spring容器
2、實例化所有的beans
3、給所有的bean裝配屬性
4、執行bean的init方法
5、從spring容器中把該bean的對象提取出來
6、對象調用方法
說明:
spring容器創建對象的靜態工廠利用了簡單工廠模式
spring容器創建對象的實例工廠利用了抽象工廠模式
?
如果一個類是單實例的那么在整個類中加一屬性,該屬性如果要存放數據,一定要考慮數據的安全性和并發性的問題。
把配置文件中的scope的屬性由“singleton”改變成“prototype”就編程了多實例。
lazy-init="true" 延遲加載
?
?
?
身份證照片
個人征信報告,
學信網,
try{
加內存鎖;
當前操作在執行,不允許別的操作執行;
for(Lend l : lends){
try{
操作 l 邏輯;
}catch{
l.set();
mgr.save(l);
記錄日志(包括記錄l信息);
}
}
去除內存鎖;
}catch{
}finally{
解鎖;
}
?
轉載于:https://www.cnblogs.com/lixiaochao/p/5645080.html
總結
- 上一篇: Yii2 主从 数据库
- 下一篇: String与string的区别