Spring简介
1. Spring的特点
Spring (春天,绿色) 容器
01.Java EE开发者的春天,大大简化了代码量
02.使用IOC来降低主业务之间的耦合度
03.使用AOP来降低主业务和系统级业务之间的耦合度
04.非侵入式框架
001.如果我们要实现某些功能,但是必须实现或者继承某个接口或类!
这种方式就是 侵入式!
002.如果我们要实现某些功能,不需要显式的实现或者继承某个接口或类!
我们感觉不到在使用框架的某个功能!框架自身会自动映射!
05.一站式开发框架
001.先去A饭店吃饭
002.再去B娱乐中心唱歌
003.再去C会所按摩
现在直接去D商务会所 ==》完成 吃饭 唱歌 按摩 三个功能!
Struts2 Spring mvc
Spring Spring
Hibernate Spring JDBC
2. Spring的核心
1.IOC
1.IOC (Inversion Of Control,控制反转)
在service层创建出来了dao层的实例对象! 控制权在service! 安全吗?耦合不?不好!!!
现在创建dao层对象的任务 交给Spring容器管理!控制权在Spring容器!
控制权由我们程序本身交给spring容器的这个行为====》控制反转!
Spring容器是咩???
01.负责创建项目中所有的对象(bean)
02.管理对象之间的各种关系
03.spring的核心配置文件
DI(Dependency Injection,依赖注入)
service层的new StudentDaoImpl()被删除,dao的对象是Spring容器来创建的!
Spring容器把创建的dao层对象 通过setDao()注入到对象中!这个过程就是依赖注入!
DI是IOC的一种具体实现!
2.AOP
2.AOP(Aspect Oriented Programing,面向切面编程) 底层是动态代理设计模式
01.切面 (Aspect):系统级业务,对主业务进行增强的方法!
02.切入点 (PointCut): 把系统级业务织入到主业务上,主业务方法就叫切入点
03.连接点 (JoinPoint):所有的主业务方法
04.织入 (Weaving):把系统级业务放到主业务上的过程
05.目标对象 (Target): 调用主业务的对象
StudentDao dao=new StudentDaoImpl();
dao就是目标对象
dao.eat();
06.通知 (Advice):是切面的一种实现,定义了织入的时间!
07.顾问 (Advisor):是切面的一种实现,定义了织入的时间,位置!
通知是顾问一个属性! 顾问包含通知!