本文是一些笔记总结,不是教程,刚开始学习Spring的朋友没必要看。
Spring介绍
- Spring的核心是控制反转(IoC)和面向切面编程(AOP)。
- Spring最主要的优点:方便解耦,简化开发。
- Spring就是一个大工厂,用于生产bean。
- Spring核心容器(Core Container)的内容:管理bean(Beans)、核心(Core)、上下文配置文件(Context)、SpEL表达式(Expression Language)。
- SpringAOP(Aspect Oriented Programming)的内容:面向切面(AOP)、AOP框架(Aspects)。
- SpringJDBC的内容:JdbcTemplate、整合Hibernate(ORM)、事务管理(Transactions,缩写tx)。
- SpringWeb的内容:web开发、整合Struts。
- SpringTest的内容:整合Junitt。
Spring Ioc
- 导入jar包:4个核心(beans、core、context、expression)+1个依赖(commons-logging.jar)
- 目标类:先提供接口和实现类,再获得实现类的实例,不用Spring的话直接new一个对象,用Spring之后,将由Spring创建对象,这个过程就叫做控制反转(IoC,Inverse of Control),之后需要实例对象时,从Spring工厂(容器)中获得,因此,需要提前将实现类的全限定名称配置到xml文件中。
- 配置文件
- 位置:任意,开发中一般在classpath下(src)
- 名称:任意,开发中常用applicationContext.xml
- 内容:添加schema约束
https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#spring-core
Spring DI
- Dependency Injection
- is a:是一个,继承
- has a :有一个,成员变量,依赖,B类中有A类,B依赖A
- 依赖:一个对象需要使用另一个对象
- 注入:通过setter方法进行另一个对象实例设置
- 模拟Spring执行过程:
- 创建service实例:Service service = new ServiceImpl(); IoC <bean>
- 创建dao实例:Dao dao = new DaoImpl(); IoC
- 将dao设置给service:service.setDao(dao); DI <property>
- <property>:name根据set方法获取