一、Spring的入门步骤
1、基本Spring配置
1、注入Spring包坐标
2、创建接口,和接口的实现类,就是创建Bean
3、创建配置文件
4、创建测试类通过GetBean()获取Bean
2、bean中prototype原型和singleton单例的区别作用
1、创建一个测试类
配置单元测试
结果显示,单例输出相同的对象地址,原型输出不同的对象地址
3、Bean不同的scode导致bean的创建时机不同(通过对象实现类无参构造器创建)
1、默认单例模式下通过无参构造器完成bean的创建(这时候bean是在加载配置文件时创建)
2、原型模式是在加载配置文件后,调用getBean()时创建
4、Bean的生命周期
5、三种实例化创建bean的方式
1、默认权限名的无参构造器
2、通过静态工厂实现
3、工厂实例化
6、注入,将一个对象(或者对象的属性)注入到另一个对象中,
使用setter方法注入
p的命名空间方式注入
有参构造器注入
7、注入数据的三种数据类型(本质就是注入到Bean中初始化)
总结setter注入:
1、对象
对象的注入,是将上层对象注入到下层,其实就是在下层等于一个上层的对象,通过对对象的setter方法,将对象注入到下层的对象中,实现嵌套,将上层的对象的方法及下层的对象的方法,通过spring容器调用下层对象,将其一起输入结果
2、普通数据类型
普通的对象的私有属性,将使用setter方法初始化,将数据注入到当前对象的Bean中,和当前对象的方法一起输出
3、引用数据类型
4、集合数据类型
list集合:直接注入,可以定义值
map集合引用对象
定义一个类,类的属性有name,age将类注入到bean中,在将map注入到bean中,将定义在注入到map中
8、Bean配置的模块化,可以将bean的配置文件拆分,并将拆分的配置文件引入到主配置文件中
9、注入复习:
二、Spring相关API
1、Spring不同的加载容器
2、getBean()的不同获取方法(不需要强转)
三、Spring配置数据源
1、数据源连接池(C3P0,DBCP,BoneCP,Druid)
连接数据源,
实例化数据源,初始化数据源
归还数据源
2、手动创建数据源(连接池)
1、添加依赖,坐标
1、实例化数据源
2、驱动数据源连接数据库
3、设置数据源连接用户名,密码
通过拆分配置文件的方式,获取数据源
3、使用Spring来配置数据源
因为CombopooledDataSource是个接口对象,通过拆分配置文件思想**,(无参构造方法注入)**可将连接数据源的参数注入到Bean中,通过Spring的加载器容器获取Bean
加载外部的properties配置文件到Bean中
这样做的目的:
1、使用Spring加载容器,将连接数据库的参数,注入bean中,因为连接池接口就是个接口对象,及实现类,
2、将连接数据库的参数定义到properties配置文件中,在引入Bean中,注入的参数可以使用变量的方式,方便在固定的配置文件中修改参数数据
四、Spring注解
1、注解注入和XML文件注入的区别
implUserao
implUserService
配置扫描
调用
注解细节(往对象中注入,保持同意,区分大小写)
@Repository(“userDao”)====》 @Qualifier(“userDao”)(可以将Setterf方法去除)
可以将 @Qualifier(“userDao”)//使用id来注入的,,去除,让它根据数据类型自动注入
三种任选一种
2、属性值的注解注入(@Value(“属性值”))
其实这种方式的的注入,解决了,初始化问题(可以少掉Setter方法),也解决了对象间的依赖问题,很好的进行解耦
3、Value("${}")这是它最大的用处,可以操作变量
4、Spring的新注解**(当前只是我们自定义的源码,如何给第三方接口添加注解)**
例如:C3P0数据连接池,这个第三方的接口
目的,将我们的配置文件进行用注解的方式替代,做到配置文件的精简
1、非定义的Bean,第三方的接口
c3p0等
2、外部的加载配置文件,例如、;properties文件
3、注解扫描
<context:component-scan base-package=“com.it”/>
4、拆分的组件导入配置主配置文件中
这是前面3中的配置文件
将这些配置代码,使用新注解的方式,代替注入
新注解:
可以使用一个类,来管理注解,配置注解类
注解就是将代替所有的bean,并通过Spring容器处理,得到返回值
5、因注解配置类也存在代码多,可将配置类进行拆分
1、数据源的注解配置
拆分后的模块注解类需要引入主注解类中加载
测试就不是加载.xml文件了,而是加载注解配置类
!
6、Spring集成Junit
1、导坐标 Spring-test junit Spring-context
加载的是.xml文件
加载的是注解类的配置
五、Spring的AOP,面向切面的编程
1、将A功能结合到B功能 使用JDK的动态代理实现切面进入B功能
2、可以被增强的方法叫做连接点joinPoint
3、当你被增强了,就是个切入点**(既是一个切面)**
4、连接点连接的过程叫织入
1、 jdk的动态代理(基于接口的代理)
2、CJLIB代理(基于父类的代理)
3、通过Spring来自动创建代理对象(自动查找切入点,判断代理方式,进行织入成切入点,形成切面)
4、基于XML的配置方式AOP开发
导入依赖
切点表达式
使用Spring集成Junit测试
通知的类型:
5、抽取切点表达式:
6、基于注解的AOP开发
在切面类中编写通知
在xml配置文件中扫描
测试
注解的方式