日期
2019/8/12 spring的优势
方便解耦,简化开发
通过IoC容器,可以将对相间的依赖关系交给spring进行控制,避免硬编码造成的过度耦合.
控制反转的思想可以集成其他框架
将service,dao的创建权交给spring 将权力交出去这样的过程叫做控制反转
AOP编程的支持
声明式事务的管理
是面向切面编程的体现,
方便程序的测试
方便集成各种优秀框架
降低JavaEEAPI的使用难度
Spring开发步骤
导入spring开发的基本包坐标
编写Dao接口和实现类
创建spring核心配置文件
在spring配置文件中配置UserDaoImpl
使用spring的api获得Bean实例
Bean的依赖注入方式
构造方法
ApplicationContext.xml中的bean标签用来获取对应类的对象
在bean标签内部 id class等对象的属性在bean标签的中间需要添加这个对象的依赖,使用构造方法注入时在bean标签中添加constructor-arg标签来建立这个依赖关系
Set方法
在需要调用下层的对象的类中定义一个私有属性并写出get方法
在xml中进行依赖注入,property的位置在bean中间用来给当前bean的类去赋值; property(属性)中 name是get后面的内容;ref是需要依赖的类的对象的id;相当于用ref的对象给property中name这个属性对应的值赋值;在创建之后初始化之前进行依赖注入;
–P标签:对象引用使用在p标签中使用p:属性名-ref=”需要依赖的id”
使用property依赖注入时value表示简单的值 ref表示注入的时另外的一个xml中的对象
导入数据源时
注解和配置xml的步骤
//注解注入测试对象
@RunWith(SpringRunner.class)
@ContextConfiguration(classpath:application Context.xml)//告诉spring配置文件或配置类的位置
Public class SpringJunitTest{
@AutoWired
Private DataSource dataSource;
@Test
Public void test1()throws SQLException{
System.out.println(dataSource.get)
}
}
Aop底层
动态代理 两种
Cglib和 jdk自带的通过invocation
连接点是拦截到的点 就是可以被增强的方法叫做连接点(分母)
切入点:真正被增强的方法叫做切入点(分子)
通知/增强advice:被增强的方法的增强方法叫做通知
切面:就是增强方法加上被增强方法的增强方法叫做切面(切点+通知)
Weaving (织入):是指把增强目标
事物是对一组增删改保证其原子性
Aop实现的内容 框架检测切入点方法的执行,使用代理机制动态获取执行该方法的对象,调用这个对象中的这个方法(增强后的)