韩顺平Spring笔记之图解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
bybService=Class.forName("com.service.BybService" bybSerice.setName("小明"); userService.setByeService(bybService); applictonContext=new HashMap(); applictonContext.put("userService",userService) applictionContext.put("byeService",bybService)
浏览器: http://xxxxx/login.do
action
ie
ie
ie浏览器
web服务器
公共评论板的框架
login.jsp
Login.java
Type.java domain对象
TypeServiceIn BasicServiceInt ter.java 继承 .java 基础接口
实现
TypeService .java
yBeanPostProcessor MyBeanPostProcessor
魔法师
需求: 1.记录每个对象,被实例化得实 际 2. 过滤每个调用对象ip 3. 给所有对象添加属性,或者函 数.=>aop(面向切面编程.针对所 有对象编程.)
☞ 学习框架,最重要的就是学习各个配置.
☞ 学习框架,最重要的就是学习各个配置.
bean bean bean
大的项目(税务,证券, 统,oa,erp,。。),编程粒度变大 java对象,spring,组件
applicationConTexte.xml 自己bean <bean>
<REF /> </bean>
连hi接.x点x
}
} 连接点 s连ya接By点e(){ }
数据源
java程序 jdbc hibernate[jdb数c]据

1号请 2号请 3号请 4号请
队列池 web.xml <!-- 指定spring的配置文件,默认从web根目录寻找配置文 件,我们可以通过spring提供的classpath:前缀指定从类路 径下寻找 --> <context-param>
目标对象
spring的层次图
ActionFrom.java
login.jsp V struts充当 web, 接管jsp / action / 表单 主要体现出mvc 的数据输入、ຫໍສະໝຸດ Baidu据的处理,数 据的显示分离
Users.java[domain对 象/javabean/pojo]
这里强调一下,在一个项目中 不一定全部有,可以根据实际 情况选择.
<listenerclass>org.springframework.web.context.ContextLoaderLi stener</listener-class>
501号 雇员薪资管理系统的框图
表单 属性
login.jsp 提交: <form>xxx</form>
失败
LoginAction.j ava
ie
实例化bean1 bean2 bean3
配置 MyBeanPostProcess or
MyBeanPostProcessor i BeanPostProcessor{
before(){} after(){} }
aop初探..
beans.xml 配置 MyBeanPostProcessor
魔法师
A
内存[Hashmap/HashTable]) ean("userService");us.sayHello();
深入探讨:(dom4j+java反射机制) userService= Class.forName("com.service.UserServi userService.setName("韩顺平");
(applictonContext对象引用)[结构类似HashMap]
id
对象
userService(ox123) UserSer[name,byeService(0x234)]
byeService(ox234)
BybService[name]
java反射机制
<bean id="user class="com.ser <!-- 这里就体 <property nam
配置bean ,
ApplicationContext ac=new ClassPathXmlApplicationContext
applicationContext上下文容器 创建 student
bean工厂.
bean工厂.
我们理解 BeanPostProcessor ,有点类似我们的web filter
可以配置各种bean(action/service/domain/dao),并且可以维护 bean的时候,我们可以getBean(id),使用即可.
控制反转: 所谓控制反转就是把创建对象(bean),和维护对象 spring的容器(applicationContext.xml),而程序本身不再维
依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更
习各个配置.
习各个配置.
税务,证券, 石油, 财务,政务系 ,编程粒度变大( 汇编 指令,c 语句 组件)
icationConTexte.xml
Context ac=new lApplicationContext("com/hsp/ioc/beans.xml");
反射
beans.xml/applicationcontext.xml
项目 初步理解
UserService
DepartmentService
引入通知 //传统方法
环绕通知
ac.getBean("??") .say()..
OrderServicer begingTransacton() ....
aop原理+案例(aop 先不说,当我们讲完案 概念)
后置通知 完成资源关闭
<bean> </bean> <bean> </BEAN>
BeanPostProcessor 后置处理器 web filter
web.xml 配置过滤器
jsp
web
filter
servlet
BeanPostProcessor implements anPostProcessor{ before(){} after(){}
<bean id>< <property ref=""></propery> </bean>
sDao/Hiber
dao层
关系模型和对象模型之间的阻抗.
web 层 action[解决action单例
问题] 业务层 service/domain/dao 持久层: 数据 源,localSessionFactory
器对象) ApplicationContext ac=new
ClassPathXmlApplicationContext("applicationCo ntext.xml");
UserService us=(UserService) ac.getBean("userService");
us.sayHello();
<param-name>contextConfigLocation</param-name> <paramvalue>classpath:applicationContext.xml</param-value> </context-param> <!-- 对Spring容器进行实例化 --> <listener>
spring框架原理图(sping框架什么被加载,spring中配置的bean,怎样 被创建,bean与bean之间的关系怎样被维护)
<bean id="user class="com.ser
spring框架原理图(sping框架什么被加载,spring中配置的bean,怎样 被创建,bean与bean之间的关系怎样被维护)
Employee.java
EmployeeServiceInt er
实现
@Transactional EmployeeService.j va[业务操作
hibernate
事情管理器
sessionfactory
struts-config.xml <action path="/login" parameter="fla type="com.hsp.web.action.LoginAction
自动装配的原理
// TODO Auto-generated method stub
ApplicationContext ac=new ClassPathXmlApplicationContext( "com/hsp/autowire/beans.xml");
//获取 Master master=(Master) ac.getBean("master"); System.out.println(master.getNa me()+" 养 "+master.getDog().getName());
spring本身提供的特殊 bean 1.实现了 BeanPostProcessor的后 置处理器 2.PropertyPlaceholderC onfigurer
自己写出bean Dog, Master
张三写好的bean
xx.properties. xx=xxx
安全 切面
日志 (切面)
事务 (切面)
内存(applictonC id userService(ox1 byeService(ox23
1.当ClassPathXmlApplicationContext("applicationContext.xm spring容器对象被创建,同时 applicaionContext.xml中配置 bean就会被创建(内存[Hashmap/H 2.UserService us=(UserService) ac.getBean("userService");
交叉功能(切面)
织入(过程)
类(可以完成写日志的功能 [术语通知,spring 了五种通知.] 前置通知before函数 ...写日志代码
代理对象(spring提供了 ProxyFactoryBean).该对象只需配置 而不要写.使用到动态代理技术
代理接口,完成代理任务. 连接点->切入点 sayHello(){
<value> </property> <!-- 在 bean -<property nam ref="bybServic </bean> <bean id="bybS class="com.ser
<property nam </bean>
plicationContext.xml");执行的时候,我们的
<!-- 配置代理请求处理 DelegatingRequ -> <controller>
<set-property property="processorC value="org.springframework.web.strut or"/> </controller>
ActionServlet 总司令 web服务器
对上面案例总结: spring实际上是一个容器框架,可以配置各种 bean与bean的关系,当我们需要使用某个bean的时候,
ioc是什么? 答 :ioc(inverse of controll ) 控制反转: (bean)的关系的权利从程序中转移到spring的容器 护.
DI是什么? 答: di(dependency injection) 依赖注入: 实际上 准确表示spring核心技术
实现
BasisService.jav 基础抽象类
hibernate持久层
数据库
rvice.java
ok.jsp V
web层,struts
业务层
sping框架.它可以管理 web层,业务层.dao层 持久层,该sping可以配置各个层 的组件(bean),并且维护各个 bean之间的关系.
配置各种bean <bean id>< <property value="hello"></propery> </bean>
Action.java 处理器 C
接口
UsersService.java 业务层
dao(UsersDao/Hiber nateUtil.java)
hibernate(orm框架),持久层 体现oop,主要解决 关系模型和对象模
数据库
spring框架原理图 被创建,
spring框架原理图 被创建,
//我们现在使用spring来完成上面的任务 //1.得到spring 的applicationContext对象(容
相关文档
最新文档