Spring整理笔记(概要)

[color=blue][color=darkred][color=blue]
[size=18]12月10日[/size]
1.IOC控制反转———由容器维护程序之间的 依赖关系! (好莱坞原则)
2、依赖注入—— 从注入的角度
i 接口注入
ii 方法注入
iii 构造子注入
3、BeanFactory

beanFactory在 大多的情况下不直接使用,而是使ApplicationContext
4、XMLBeanFactory的2种加载方式(1)class path
(2)FILE
5.BeanFactory管理Bean(组件)的生命周期。
6.Bean的 定义
<bean id="bean的名字 " name="别名 可以用各种字符"
class="类名 必须是 全限定类名"
singleton="ture 表示单例 false表示原型 默认情况为单例 对于原型的 处理采用克隆的方法 克隆分为深度克隆,和浅克隆"

/>
7 通过set方法 的 注入依赖


[size=18]
12 月12日[/size]

1.复杂属性 (重点)


2.自动 装配:在 bean过多的时候 不建议使用
3、继承 关系 (重点)
通常我们所用的继承关系由两种:(1) 种是两个具体 类直接的 父子继承类
(2)通过 IOC的机制,用配置文件实现两个 类的继承关系
abstracat : 针对父类,将其认定为 true 该类为抽象类,但可能不是 真 正意义上的 抽象类
parent : 针对子类,继承上面abstracat中的类】



4.lookup.method 通过IOC机制实现抽象类中的方法实例化
注意要引入其中cglib_no .jar
返回决体的 bean对象,加上一个 具体的抽象类中的方法
<lookup_method bean="最佳实现将其设定为原型" name=" 抽象类中的 方法"/>


5.依赖检查 :dependency_check="none|不进行依赖检查,simple="基本类型的 属性" objects="对象间的 关联检查" all="所有 的 属性" "
不建议使用
6.factory-method=" "
factor-bean=" "

7.bean的 生命周期的回调


[size=18]
Spring 中的 AOP框架[/size]

[size=12]一AOP中的 一些术语[/size]
1.切面(Aspect): 程序中所关注的 焦点问题, 最常见的 例子日志记录
2.连接点 (Joinpoint):应用程序执行过程中插入切面的地点。如方法调用前 后,异常抛出时。
3.通知(Advice):通知切面的实际实现,也就是将要对切面作什么事。
4.切入点(Pointcut):告诉 通知在 那些连接点上发生。连接点中一定存在切 入点。
5.引入(Introduction):允许你为已存在的类添加新的方法和 属性
6.目标对象(Target):被通知的 对象
7.代理(Proxy):将通知应用到目标对象后创建的对象
8.织入(Weaving):将切面应用到目标对象 从而创建 一个 新的代理对象的过程
[size=18]12月14日[/size]

一、spring 的 AOP的实现

1.实现 了 AOP联盟借口
2.只支持方法连接点
3、运行期植入

二、通知的 4中类型:

1、前置通知(在调用方法前 ) 如用于:安全检查

2、后置通知(在应用程序之后) 如用于:日志

3、环绕通知 主要用于启动事务
Public interface MethodInterceptor extends Interceptor{
Object jnvoke(MethodInvocation invocation) throws Throwable;
}
通过
4、异常通知
(1) void afterThrowing(Throwable throwable)
(2)void afterThrowing(Method method ,Object[] args,Object target,Throwable throwable)

注意:通知是无状态的 ,服务多个 并发请求
三、定义切点:

public interface Pointcutp{

ClassFilter getClassFilter();

MethodMatcher getMethodMatcher();

}
// 类的切入
public interface ClassFilter{
boolean matches(Class clazz);
}

// 方法的 切入三中情况
public interface MethodMatcher{
boolen matches(Method m, Class targetClass);
boolen isRuntime(); //判断返回时 true 还是 flase
boolean matches(Method m, Class target, Object[] args); //当 上面的 方法返回true时调用 这个动态方法

}

四、Advisor的 运用
//连接切入点和通知的 类
public interface PointCutAdvisor{
Pointcut getPointcut();
Advice getAdvice();
}

五、Spring的 静态切入点

1、方法名字匹配的切入点 (NameMatchMethodPointcut)
public void setMappedName(String)
public void setMappedNames(String[])
2、正则表达式切入点 (RegexpMethodPointcut)
. 匹配任意字符;
+ 前一个 字符一次或多次;
* 前一个 字符0或多次;
{n} 前一个字符的 准确次数;
\ 转义字符 ;


Spring 的 动态切入点 (不推荐 使用)


[size=18]12月17日[/size]
[size=24]Spring 的持久化支持[/size]
1.Spring的DAO理念
Spring提供了一个Dao接口。

JdbcDaoSuport类 要 依赖与JDBC Template模板类
Hibernate DaoSuport类要依赖与Hibernate Template模板类
JdbcDaoSuport类 中的两个重要属性:
* DateSource datesource
JdbcTemplate jdbc template
Hibernate DaoSuport 中的两个 重要属性 :
* SessionFactory sessionfactory
HibernateTemplate hibernateTemplate
(1) JDBC Template
首先描述实现DateSource属性,
用(增)update(sql);
update(sql,Object) ; 一个参数情况
update(sql,Object[]); 多个参数情况

(查)query*(sql,Object[]);
常用: queryForList方法接收;
注意返回的 式map类型的封装方式
(2)Hibernate Template
首先实现SessionFactory sessionfactory
用 Save(object);
update(object);
delete(object);
SaveOrUpdate();
merge();
(查)find*(HQL,Object[]);
load(pk);按照主键装载;

spring 的 事物管理

1事务的几个属性:
(1)传播性 PROGATION_MANDATORY 一个 方法或操作必须运行在一个事物之中 (不会开启事物)
PROGATIOM_NESTED 嵌套性事物中
PROGATION_NEVER 不应该运行在事物中
PROGATION_NOT_SUPPORTED 不应运行于事物中 ,当开启事物时事物刮起
* PROGATION_REQUIRED 必须运行在事物中,可以开启事物
* PROGATION_REQUIRED_NEW 必须 运行在新的事物中
PROGATION_SUPPORTS 不需要事物

(2)隔离级别 脏读:由于没有提交 引起的

不可重复读:当用户在浏览信息的 时候,数据发生了改变

幻读:当作用户作 一次查询的时候 ,经过短暂的 时间,发现数据发生了增加

为了 解决这几种情况,制定了4 种隔离级别:

为提交读:ISOLATION_READ_UNCOMMITTED
提交读 :ISOLATION_READ_COMMITTED 解决了脏读问题大部分数据库采用
重复读 :ISOLATION_REPEATABLE_READ 没有解决幻读
序列化 :ISOLATION_SERIALIZABLE

由数据库默认采用隔离级别:ISOLATION_DEFAUIT

(3) 只读属性:readonly

[size=18]12月29日[/size]

Spring的MVC简单介绍:

1.中央控制器:DispatcherServlet
/WEB-INF/${servletName}-servlet.xml

映射方式:
Url----Bean
*默认方式: (1)名 字的 映射 BeanNameUrlHandlerMapping
Url=A.htm
<bean name="/A" class=" "/>
缺点:控制器暴露,但推荐使用

(2)名字不同的映射 SimpleUrlHandlerMapping
Url=AA.htm
<bean id="handlermapping" class=" " >
<property name="mapping">
<props>
<prop key="AA.html" key中是URL的名字>A</prop>
</props>

</property>
</bean>
安全但比较麻烦
2.Controller接口 (控制器)

(1)AbstractController

简单的接口,提供国际化等

(2)AbstractFormController 表单的 处理还原
SimpleFormController

get--要对应formView
post--onSubmit()

(3)BaseCommandController
AbstractCommandController 根据type=" "进入不同的操作
(4)AbstractWizardFormController
向导式的控制器

3.ModelAndView

ModelAndView ("页面的名字"," 传进的属性"," 绑定属性的值")

4.UrlMapping


配置文件必须放在/WEB-INF/中,交由控制器处理


spring中的远程方法调用

1. rmi
服务器: org.springframework.remoting.rmi.RmiServiceExporter类
几个重要属性:* serviceName 服务名
* service 用于处理rmi请求的类
* serviceInterface 接口
registryPort 端口
客户端: org.springframework.remoting.rmi.RmiProxyFactoryBean
几个重要属性:* ServiceUrl 连接串 例如: rmi://ip[:port]/serviceName
* serviceInterface 接口


2.http 用他的好处是可以穿透防火墙限制

服务器: org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter
几个属性:service 服务
serviceInterface 接口


客户端: org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean
几个属性: serviceUrl 连接串 例如:http://ip:port/servce
serviceIterface 接口




[/color][color=yellow][/color][color=blue][/color][/color][/color]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值