Spring课堂笔记讲解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一篇:Spring概述
1、Spring框架内核
IoC(Inverse Of Control):反转控制。
AOP(Aspect Oriented Programming):面向切面编程。
2、Spring的体系结构
3、Spring开发所需的资源
第二篇:Spring核心之IoC(控制反转)1、拷贝核心jar包:
2、IoC的概念:
3、资源交给Spring管理
3.1建立spring的配置文件:
a、schema约束文档资料位置
b、schema引入后xml没有提示的解决方案
c、把DAO实现交给Spring容器(Map结构)管理
a、把核心jar包加入到classpath中
b、启动Spring容器
4、依赖注入:DI(Dependency Injection)
5、Spring核心类或接口
核心接口:ApplicationContext
ClassPathXmlApplicationContext:加载位于classpath中的spring配置文件。
FileSystemXmlApplicationContext:加载位于本地磁盘上的spring配置文件。
了解:BeanFactory和ApplicationContext获取Bean的区别
6、Bean的初始化
●方式一:使用默认的构造方法。(推荐,重点)
注意:Bean要有默认的构造方法
●方式二:静态工厂方法初始化(遗留老系统)
●方式三:实例工厂方法初始化(遗留老系统)
7、bean的存活范围
取值:
singlton(默认值):单例的。在spring容器中实例只有一个。
prototype:非单例的。用的时候都会创建新的对象。
request:请求范围。(只能用在web环境下)
session:会话范围。(只能用在web环境下)
8、bean的生命周期有关配置
注意:
9、依赖注入:重点
9.1通过构造方法注入
9.2setter属性注入:重点
9.3p名称空间:
9.4SpEL:Spring Expression Language
9.5注入数组或集合
10、团队开发
按模块编写spring配置文件。
注意事项:
●同一个xml文件中不能出现相同id名称的bean
●多个xml文件可以出现id相同名称的bean,后导入的配置的会覆盖前面的配置。
●
11、使用注解
11.0概述
作用:替代xml作为配置文件。
注解VS XML
注解:优点---开发直观,开发效率高。缺点---硬编码。
XML:缺点---开发效率低,麻烦。优点---运行期间可配置。
11.1Spring中使用注解进行配置
a、jar包:还是使用核心的5个jar即可
b、spring配置文件指定bean的搜索路径
c、实例化资源
11.2常用的注解
●资源管理:
方式一:
@Component:把bean交给spring容器管理。默认bean的名称就是类名首字母小写方式二:
@Component的衍生注解,主要用在三层架构开发中
@Controller:表现层使用,一般动作类上
@Service:业务层使用
@Repository:持久层使用
----------------------------------
●资源注入:
方式一:
@Autowired:自动注入
required属性:
默认值是true。注入失败,抛出错误说找不到对应的bean
false:注入失败,抛NullPointerException
@Qualifier:指定要注入的bean的名称。要配置@Autowired来使用
@Value:注入基本类型数据和String
按类型自动注入的注意事项:
●注入属性类型为class
⏹如果类名(简单类名)对应的类只有一个,注入成功
⏹如果类名(简单类名)对应的类有多个,注入失败
●注入属性类型为interface
⏹如果不存在对应接口的实现类,注入失败
⏹如果对应接口的实现类为一个,注入成功
⏹如果对应接口的实现类为多个,注入失败
方式二:
@Resource:功能和@Autowire是类似的。默认按照类型进行注入。此注解是Spring框架对JSR-250的支持。
@Autowire和@Qualifier可以按照指定名称进行注入;@Resource(name="bean的名称";
●生命周期有关注解:
●针对老系统,bean是由工厂创造的
12、Spring中使用JUnit
a、导入jar包
新增一个jar包:spring-test-3.2.0.RELEASE.jar
b、如何使用单元测试
第三篇:Spring核心之AOP(面向切面编程)
1、代理模式
●静态代理:代理类已经写出来了,实实在在的存在的。
●动态代理:(Spring采用的)运行期间生成的,内存中的类。
⏹基于接口的动态代理:JDK代理,Proxy。编译时快,运行时慢。
⏹基于子类的动态代理:CGLIB。编译时慢,运行时快
导入cglib的jar包:
Spring框架用的代理:目标类实现了某个接口,用JDK代理;目标类没有实现任何接口,用CGLIB代理。