初识Spring
- 0.为什么学习Spring?
- 1.Spring是什么
- 2.Spring概念----Spring的核心是IOC和AOP
- 3.Spring概念----Spring模块
- 4.Spring概念----applicationContext&BeanFactory
- 5.Spring配置详解----bean元素
- 6.Spring配置详解----bean元素进阶
- 7.Spring配置详解----Spring生成bean的三种方式
- 8.Spring配置详解----Spring的分模块配置
- 9.Spring属性注入
- 10.使用注解配置spring
- 11.spring与junit整合测试
- 12.AOP
- 未完待续 持续加载ing...
0.为什么学习Spring?
方便解耦,简化开发
Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理。
AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截,运行监控等功能。
声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了各种对优秀框架(Struts,Hibernate,MyBatis等)的直接支持。
降低JavaEE API的使用难度
Spring对JavaEE开发中非常难用的一些API(JDBC,JavaMail,远程调用等),都提供了封装,使这些API应用难度大大降低。
1.Spring是什么
Spring是由Rod Jojnson创建的一个开源框架。Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能。同样的功能,在EJB中要通过繁琐的配置和复杂的代码才能够实现,而在Spring中却非常的优雅和简洁。 **任何Java应用都可以从Spring中受益。**简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。
2.Spring概念----Spring的核心是IOC和AOP
2.1 IOC(DI)
以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入。反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序(spring)。
DI:依赖注入,反转控制(IOC)最经典的实现。实现IOC思想需要DI做支持。
注入方式:
set方法注入构造方法注入字段注入
注入类型:
值类型注入 8大基本数据类型引用类型注入 将依赖对象注入
2.2 AOP
3.Spring概念----Spring模块

4.Spring概念----applicationContext&BeanFactory
4.1 BeanFactory接口
1.spring原始接口。针对原始接口的实现类,功能较为单一;
2.BeanFactory接口实现类的容器。特点是每次在获得对象时才会创建对象。
4.2 ApplicationContext
1.每次容器启动时就会创建容器中配置的所有对象.并提供更多功能;
2.从类路径下加载配置文件:ClassPathXmlApplicationContext;
3.从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext(“d:/xxx/yyy/xxx”)。
结论1:BeanFactory是在getBean的时候才会生成类的实例;ApplicationContext是在加载applicationContext.xml时就会被创建。
结论2:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory。
5.Spring配置详解----bean元素
applicationContext.xml中的配置:

6.Spring配置详解----bean元素进阶
6.1 scope属性----Bean的作用范围
singleton(默认值):单例对象,被标识为单例的对象在spring容器中只会存在一个实例;
prototype:多例原型,被标识为多例的对象,每次再获得才会创建,每次创建都是新的对象,整合strut2时,ActionBean必须配置为多例的;
request(了解):web环境下,对象与request生命周期一致;
session(了解):web环境下,对象与session生命周期一致;
6.2 Bean的生命周期的配置
通过配置标签上的init-method作为Bean的初始化时候执行的方法,配置destroy-method作为Bean的销毁时候执行的方法。
销毁方法想要执行,需要时单例创建的Bean而且在工厂关闭的时候,Bean才会被销毁。
7.Spring配置详解----Spring生成bean的三种方式
空参构造方法静态工厂(了解)实例工厂(了解)



8.Spring配置详解----Spring的分模块配置

9.Spring属性注入
注入方式
set方法注入

构造函数注入

p名称空间注入

spel注入
语法: #{SpEL}

复杂类型注入
数组


List


Map

Properties

10.使用注解配置spring
步骤:
- 导包(4+2+1[aop])
- 为主配置文件[applicationContext.xml]引入新的命名空间
- 使用注解代理配置文件

- 在类中使用注解完成配置
将对象注册到容器中

修改对象的作用范围

值类型注入
有两种方法,第一种是在属性上设置,破坏了封装性

第二种是通过set方法赋值,推荐使用

引用类型注入
有两种方法,第一种方法是自动装配

第二种方法是手动注入,推荐使用

初始化和销毁方法

11.spring与junit整合测试
- 导包 4+2+aop+test
- 配置注解

- 测试

12.AOP
什么是AOP
AOP (Aspect Oriented Programing) 称为:面向切面编程,它是一种编程思想。
AOP采取横向抽取机制,取代了传统纵向继承体系重复性代码的编写方式。AOP 是 OOP(面向对象编程)的思想延续。
AOP 思想: 基于代理思想,对原来目标对象,创建代理对象,在不修改原对象代码情况下,通过代理对象,调用增强功能的代码,从而对原有业务方法进行增强 !
为什么要学习AOP
在不修改源码的情况下,对程序进行增强。
AOP可以进行权限校验,日志记录,性能监控,事务控制
AOP底层实现
代理机制:
Spring的AOP底层用到两种代理机制:
*JDK的动态代理(优先):针对实现了接口的类产生代理。
* Cglib的动态代理(没有接口):针对没有实现接口的类产生代理。应用的是底层的字节码增强的技术,生成当前类的子类对象。第三方代理技术,cglib代理,可以对任何类生成代理,代理的原理是对目标对象进行继承代理,如果目标对象被final修饰,那么该类无法被cglib代理。
动态代理
动态代理原理
AOP名词解释
Joinpoinit(连接点):目标对象中,所有可以增强的方法。
Pointcut(切入点):目标对象,已经增强的方法
Advice(通知/增强):增强的代码
Target(目标对象):被代理对象
Weaving(织入):将通知应用到切入点的过程
Proxy(代理):将通知织入到目标对象之后,形成代理对象
aspect(切面):切入点+通知
本文深入解析Spring框架的核心概念,包括IOC和AOP,以及如何利用Spring简化企业级应用开发。涵盖Spring模块介绍,bean元素配置,作用范围与生命周期管理,属性注入方式,注解配置步骤,与JUnit整合测试,及AOP编程支持。

被折叠的 条评论
为什么被折叠?



