//////////2017-2-18 ~ 2017-2-26///////////
int study_data(){
Spring概念
1.spring是開源的輕量級框架
2.spring核心主要兩部分:
? ? (1)aop:面向切面編程,擴(kuò)展功能不是修改源代碼實現(xiàn)的
? ? (2)ioc:控制反轉(zhuǎn)笛园,比如有一個類隘击,在類里面有方法(非靜態(tài)),調(diào)用類里面的方法研铆,創(chuàng)建類的對象埋同,使用對象調(diào)用方法,創(chuàng)建類對象的過程蚜印,需要new來新建對象莺禁,而在spring中不需要通過new,而是交給spring配置創(chuàng)建類對象3.spring是一站式框架
? ? spring在javaee三層結(jié)構(gòu)中窄赋,每一層都提供不同的解決技術(shù)
? ? ? ? web層:springMVC
? ? ? ? service層: spring的ioc
? ? ? ? dao層:spring的jdbcTemplate4.spring版本
? ? (1)hibernate5.x
? ? (2)spring4.x? ?
IOC
Spring的ioc操作
? ? 1.把對象的創(chuàng)建交給spring進(jìn)行管理
? ? 2.ioc操作兩部分:
? ? ? ? (1)ioc的配置文件方式
? ? ? ? (2)ioc的注解方式ioc的底層原理
? ? 1.ioc底層原理使用技術(shù)
? ? ? ? (1)xml配置文件
? ? ? ? (2)dom4j解決xml
? ? ? ? (3)工廠設(shè)計模式
? ? ? ? (4)反射(通過反射機(jī)制創(chuàng)建實例對象)案例步驟
? ? 1.創(chuàng)建項目
? ? 2.導(dǎo)入jar包
? ? ? ? (1)四個核心jar包:beans哟冬,core楼熄,context,spEL
? ? ? ? (2)導(dǎo)入支持日志輸出的jar包
? ? 3.創(chuàng)建類浩峡,添加方法
? ? 4.創(chuàng)建spring配置文件可岂,配置bean
? ? ? ? (1)spring核心配置文件名稱和位置不是固定的,建議放到src下面翰灾,官方建議名稱為applicationContext.xml
? ? ? ? (2)引入schema約束
? ? ? ? (3)配置對象創(chuàng)建(bean)
? ? 5.測試案例Spring的bean管理(xml方式)
? ? 1.Bean實例化的方式
? ? ? ? (1)在spring里面通過配置文件創(chuàng)建對象
? ? ? ? (2)a)Bean實例化三種實現(xiàn)方式
? ? ? ? ? ? (i)使用類的無參構(gòu)造函數(shù)創(chuàng)建
? ? ? ? ? ? (ii)使用靜態(tài)工廠創(chuàng)建
? ? ? ? ? ? (iii)使用實例工廠創(chuàng)建
? ? ? ? (3)Bean標(biāo)簽的常用屬性
? ? ? ? ? ? ①id屬性:起名稱缕粹,id屬性值任意命名(id屬性不能為中文,不能有特殊符號纸淮,根據(jù)id值獲得配置對象)
? ? ? ? ? ? ②class屬性:創(chuàng)建對象所在類的全路徑
? ? ? ? ? ? ③name屬性:功能和id屬性一樣平斩,但是name可以屬性值里面可以包含特殊符號,一般用于是為了配合struts1.0而存在
? ? ? ? ? ? ④scope屬性:Bean的引用
引用配置文件中的bean
<ref bean="somebean" />
引用其他bean中的屬性值
<property name="someProperty" value="${bean.someProperty}" />屬性注入
? ? 1.創(chuàng)建對象的時候咽块,向類里面的屬性注入值
? ? 2.屬性注入的三種方式
? ? ? ? ①使用set方法注入
? ? ? ? ②使用有參的構(gòu)造函數(shù)注入
? ? ? ? ③接口注入ioc與di區(qū)別
? ? 1.ioc:控制反轉(zhuǎn)绘面,把對象創(chuàng)建交給spring進(jìn)行配置
? ? 2.di:依賴注入,向類里面的屬性中設(shè)置值侈沪,通過java反射實現(xiàn)
? ? 3.關(guān)系:依賴注入不能單獨存在揭璃,需要在ioc的基礎(chǔ)上完成Spring的bean管理(注解方式)
? ? 1.注解使用方法
? ? ? ? ①導(dǎo)入jar包(aop包)
? ? ? ? ②創(chuàng)建類,添加方法
? ? ? ? ③創(chuàng)建spring配置文件(需要context約束)
? ? ? ? ④開啟注解掃描<context:component-scan base-package="..." />
? ? 2.創(chuàng)建注解對象
? ? ? ? ①@Component(實體層)
? ? ? ? ②@Controller(web層)
? ? ? ? ③@Service(業(yè)務(wù)層)
? ? ? ? ④@Repository(持久層)
? ? 這四個注解的功能是一樣的亭罪,都是創(chuàng)建對象瘦馍,只是為了讓標(biāo)注類本身的用途更加清晰
? ? 3.設(shè)置對象為單實例/多實例
? ? ? ? @Scope(value=“singletonType/protoType”)
? ? 4.注解注入屬性
? ? ? ? @Autowired:首先通過byName查找,找不到則通過byType查找应役,如果類型存在且唯一則注入情组,否則拋出異常
? ? ? ? @Qualifier(value="asd"):直接通過byName查找
? ? ? ? @Resource(name=“beanName”) ? ? ? ?
Spring事務(wù)管理
? ? 事務(wù)是數(shù)據(jù)庫操作中最基本的單位,是一組操作扛吞,對于一個事物而言呻惕,其當(dāng)中的操作要么全都執(zhí)行荆责,要么都不執(zhí)行滥比。事務(wù)特性:ACID
事務(wù)管理的api
? ? 1.spring事務(wù)管理的兩種方式
? ? ? ? ①編程式事務(wù)管理(不用)
? ? ? ? ②聲明式事務(wù)管理(xml/注解)
? ? 2.spring事務(wù)管理的api
? ? ? ? 一 . spring針對不同的dao層框架,提供不同的實現(xiàn)類
? ? ? ? 二 . 首先做院,配置事務(wù)管理器
? ? ? ? ? ? ①創(chuàng)建數(shù)據(jù)庫
? ? ? ? ? ? ②創(chuàng)建service和dao層盲泛,完成注入關(guān)系
? ? ? ? 三 . 配置事務(wù)管理器
}