spring

  • 格式:txt
  • 大小:6.62 KB
  • 文档页数:3

2.BeanNameAutoProxyCreator才是直正的可用的生成代理的工厂.
生成的代理与目标同名(容器仅持有代理的引用).
三.Adivce的写法
1.永远使用aop联盟定义的MethodInterceptor来写Advice.
2.它具有最广泛的通用性,同时可以实现不同时刻的拦截,可以修改目标对象方法的返回值,可以决定是否调用目标的方法.
具体的做法:
1.双方遵循bean的规范,属性私有,具setter和getter。
2.为项目添加spring的能力.
3.填写配置文件(托管)
4.启动spring容器
ApplicationContext ctx= new ClassPathXmlApplicationContext("applicationContext.xml");
2.Aop的核心的代理,基础是IOC.
3.动态代理(jdk,cglib)
4.spring实现AOP步骤
a.编写Advice
b.配置
一个对象ProxyFactoryBean
注入
interceptorNames
target
5.几个重要的名词
Advice:一个增强的功能,应用到目标对象的所有方法之上.
</bean>
1b)定义事务增强
<bean id="txAdvice" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="tm"></property>
4.调用配置文件中的init-method指定的方法,进行初始化.
5.当用户从容器取出 bean时,该托管对象已经全部就绪.
6.当容器关闭时,会调用destroy-method指定的方法进行收尾.
二.托管Bean之间的配置继承
1.简化一些配置代码.
2.公共配置写在
<bean id="baseBean" abstract="true">
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<value>txAdvice</value>
</propertyБайду номын сангаас
d.在struts-config.xml中添加插件ContextLoaderPlugIn
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml"/>
客户:持有接口或基类的引用.由IOC注入目标或代理.
4.AOP的基础是IOC。
三.代理的实现手段
1.静态代理:必须为每一个目标类编写代理类.
2.动态代理:代理类是自动产生的,不需要编写.
a.JDK动态代理(Proxy+InvocationHandler)
目标实现了接口自动采用
b.CGLIB动态代理
三.IOC不同类型的注入
1.自定义类型的对象
ref="id"

<ref local="userBiz"/> ==》 只在当前配置文件中找

<ref bean="userBiz"/> ==》 只所有的配置文件中找
2.对于java的简单类型及字符串
value="值"
3.对于数组
value="classpath:hibernate.cfg.xml">
</property>
</bean>
b.简化dao
1)必须extends HibernateDaoSupport
2)必须为dao配置注入sessionFactory.
3)在CRUD必须通过模板完成,this.getHibernateTemplate().操作。
Spring(1)
一.何谓Spring框架?
1.spring是唯一一个可以跨不同逻辑层出现的,为javaee提供"一站式"服务的框架.
2.spring提供了两个核心服务:IOC和AOP.
a. IOC服务:装配服务.(组件耦合度低,组件可测试)
b. AOP服务:增强服务.(可以实现组件的替换)
typeII setter方式
typeIII 构造子方式(顺序)
3.与struts的整合
a.目的:给struts托管的Action注入Biz
b.步骤(略)
一.托管Bean的生命周期
1.启动spring容器时,会加载配置文件.
2.每个<bean>会产生一个实例,默认为单例.
3.进行装配(IOC),调用setter实现.
<property name="beanNames">
<list>
<value>stuBiz</value>
</list>
</property>
</bean>
二.何谓IOC?
1.字面义,Inverse Of Control(控制反转),两个对象之间建立依赖关系是由第三方完成的。
2.第三方是由谁扮演?
工厂:冗余代码出现.依赖会转移.
容器:
a.需要建立依赖关系的对象要托管.(配置)
b.由spring自动完成组装.
c.需要使用的时候从容器中取出托管对象.
公共配置
</bean>
3.复用
<bean id="" class="类名" parent="baseBean">
继承了公共配置
</bean>
三.何谓AOP?
1.字面义为Orient Aspect Program,面向切面的编程.
体现了动态的代码复用.OOP是将公共的代码抽取到基类中复用.在编译时即确定了复用范围,称之为静态的代码复用.
<property name="transactionAttributes">
<props>
<prop key="方法名">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
2)定义业务组合的代理BeanNameAutoProxyCreator
</key>
<ref local="userBiz"/>
</entry>
</map>
7.Porperties用
<props>
<prop key="aaaa">bbbbb</prop>
</props>
注意:properties中键与值都只允许为String,而map可以是String也可以是其它对象.
spring (4)
回顾
1.Advisor
2.ProxyFactoryBean
BeanNameAutoProxyCreator
一.spring与hibernate的整和
1.目的
a.数据源托管,意味着其产生的连接也在spring的管理范围内。
b.简化dao的编写.(模板模式)
</plug-in>
注意:修改spring中Action bean
<bean name="/行动方案的path" ..../>
spring(2)
回顾
1.IOC(依赖注入)的概念
第三方建立依赖
a.工厂:冗余 转移
b.容器
2.spring IOC的方式
typeI 接口方式
<list>
<value>数组元素</value>
</list>
或者
<list>
<ref local="id" />
</list>
4.List同Object[]
5.Set用<set>
6.Map用
<map>
<entry>
<key>
<ref local="userBiz"/>

下载文档原格式

  / 3