通过学习一个叫Hibernate(冬眠)的框架后,进而学习一个叫Spring(春)的框架!!
1、Spring的主要思想:
2、AOP的相关概念
A)业务场景:
在service层提供30个模块的服务。同时这些模块都依赖某个或某几个公共服务。(权限管理、事务管理、日志管理)
传统方式:使用继承的方式,30个模块都去继承那几个公共服务(然而:想想java是单继承后是不是很恐怖?)
AOP做法:把公共服务定义成“通知类”,而那30个模块的服务定义成“切入点类”;然后把通知类和切入点类结合成“切面”。(这样程序猿们就可以安心做service层业务,也就是这30个模块的服务,而不用在意那几个公共服务...)
B)AOP里的一些知识概念:
Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点.
Pointcut(切入点):所谓切入点是指我们要对哪些Joinpoint进行拦截的定义.
Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通知分为前置通知,后置通知,异常通知,最终通知,环绕通知(切面要完成的功能)
Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.
Target(目标对象):代理的目标对象
Weaving(织入):是指把增强应用到目标对象来创建新的代理对象的过程.
spring采用动态代理织入,而AspectJ采用编译期织入和类装在期织入
Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
Aspect(切面): 是切入点和通知(引介)的结合
ps:下图可以看出AOP的具体分布图
3、Spring初体验...
2、DAO层通过HQL语句进行数据查询
3、POJO类(domain)是用注解的方式与数据库的表关联的!
4、IOC
4、SpringAOP手动配置执行...
2、通知类(实现对应接口,从而分清是哪一类通知)
3、代理类(配置AOP编程)
A)绑定目标类
B)绑定通知类
C)绑定接口关联
5、Spring自动配置AOP编程...
通知类(实现对应接口)
代理类(自动配置AOP编程)
A)切入点表达式
B)切入点类与通知类绑定
6、AsjectJ的XML方式完成AOP编程...
通知类(可都写在一个随便命名的类中,用不同方法表示不同通知,具体区分用参数列表决定)
AspectJ创建AOP编程
7、AsjectJ的注解方式AOP编程...
通知类用注解完成
开启全局注解扫描 、开启AspectJ的注解
8、冬眠过后的春天(Spring和Hibernate整合之一)
9、冬眠过后的春天(Spring和Hibernate整合之二)
10、SpringMVC体验一...
A)web.xml
配置中央控制器(前端控制器) :org.springframework.web.servlet.DispatcherServlet
B)applicationContext.xml
配置处理器映射器(HandlerMapping):
org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping
配置处理器适配器(HandlerAdapter):
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter
配置视图解析器(view resolver):
org.springframework.web.servlet.view.InternalResourceViewResolver
配置Action:因为是"BeanNameUrlHandlerMapping",所以根据name来查找!!
C)action层
因为是"BeanNameUrlHandlerMapping",
所以实现"import org.springframework.web.servlet.mvc.Controller;"接口
11、SpringMVC体验二...
A)web.xml
配置中央控制器(前端控制器) :org.springframework.web.servlet.DispatcherServlet
B)applicationContext.xml
配置处理器映射器(HandlerMapping):
org.springframework.web.servlet.handler.SimpleUrlHandlerMapping
配置处理器适配器(HandlerAdapter):
org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter
配置视图解析器(view resolver):
org.springframework.web.servlet.view.InternalResourceViewResolver
配置Action:因为是"SimpleUrlHandlerMapping",所以根据id来查找!!
C)action层
因为是"SimpleUrlHandlerMapping",
所以实现"import org.springframework.web.HttpRequestHandler;"接口
12、SpringMVC体验三...
配置中央控制器(前端控制器) :org.springframework.web.servlet.DispatcherServlet
B)applicationContext.xml
Spring自动配置注解处 理器映射器和注解处理器适配::
<mvc:annotation-driven></mvc:annotation-driven>
配置视图解析器(view resolver):
org.springframework.web.servlet.view.InternalResourceViewResolver
配置添加注解扫描(扫描com.wq.action层的注解)
C)action层(具体注解请参考代码)
@Controller//标示为控制器
@RequestMapping("/addType.do")//访问路径
13、SSH初体验...
2、web.xml 前段处理器、过滤器
3、hibernate.cfg.xml、hibernate.reveng.xml
4、POJO、映射文件
5、Dao层接口和实现类、service层接口和实现类
6、applicationContext.xml文件整合Service层和Dao层(可删除hibernate.cfg.xml、hibernate.reveng.xml)
7、Action层和View层
8、applicationContext.xml文件整合action层