第一节 Spring框架原理
5.1.1 Spring-IOC容器篇–自定义IOC容器视频
IOC、AOP
1.通过读取XML—>反射Bean—>放入Map
2.调用时,通过get,获取Bean
读取XML代码
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.springframework.util.StringUtils;
import java.io.InputStream;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) throws DocumentException {
new Test().test1();
}
public void test1() throws DocumentException {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(getResourceAsStream("applicationContext.xml"));//读取XML
//读取根节点 --也就是换成document
Element rootElement = document.getRootElement();
getNodes(rootElement);
}
public void getNodes( Element rootElement){ //开启递归
System.out.println("获取节点名称:"+rootElement.getName());
List<Attribute> attributes = rootElement.attributes();
for (Attribute attribute : attributes) {
System.out.println(attribute.getName()+"----"+attribute.getText());
}
//获取val
String textTrim = rootElement.getTextTrim();
if(StringUtils.isEmpty(textTrim)){
System.out.println(textTrim);
}
//开启迭代
Iterator<Element> elementIterator = rootElement.elementIterator();
while (elementIterator.hasNext()){
Element element = elementIterator.next();
getNodes(element);
}
}
public InputStream getResourceAsStream(String xmlPath){
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(xmlPath);
return inputStream;
}
}
5.1.2 spring-IOC容器篇–ApplicationContext视频
学习Spring,逻辑支点:一切起源于IOC
ApplicationContext:一个具备很多功能的容器
5.1.3 Spring-IOC容器篇–BeanDefinition视频
5.1.4 Spring-IOC容器篇–bean的生命周期视频
5.1.5 SpringAOP思想视频
5.1.6 SpringAOP源码流程视频
5.1.7 事务的概念视频
数据库是怎么区分SQL1,SQL2是否在同一个事务?
通过连接(Connextion)来判断
5.1.8 事务源码视频
Spring注解解析源头类:NamespaceHandler
事务:TxNamespaceHandler
支撑整个事务的功能
TransactionInterceptor
5.1.9 Spring问题域&核心流程分析回放
最后附个整理的spring初始化Bean的脑图