spring 个人小心得

1  spring容器相当于一个工厂,这个工厂创造并控制了beans。同时解耦beans之间的控制权,使程序结构更加优化。

2  Bean对象创建的时机,默认是随着容器创建,可以使用lazy-init=true(在调用getBean创建)延迟创建。

3  Spring容器默认是通过单例模式创建Bean对象的,也就是说, 默认情况下,通过调用ac.getBean("mybean")方法获得的对象都是同一个bean对象。

     使用单例模式有风险,风险在于多线程并发访问时会有一些状况。在配置文件加该属性scope="prototype",会new一个。

4   IOC   注解注入:首先需要在applicationContext.xml中添加<context:component-scan/>   组件自动扫描。

bean组件注解

         @Service 用于Service业务组件@Control 用于Action控制组件@Respository 用于DAO数据访问组件

  @Component 用于其他组件

依赖注入的注解标记
@Resource 按名称@Resource(name="id名")
@AutoWired 按名称

  @Autowired

论使用@Resource还是@Autowried,我们用再写set方法的。

其他注解:@Scope 等价于<bean scope="">

5 AOP相关概念 *
1) Aspect切面(方面)
指的是共通业务处理,可以切入到多个目标对象,可多次使用
2) JoinPoint连接点
指的是切面组件在目标对象上作用的位置, 例如:方法上戒者发生异常。
3) Pointcut切入点
切入点是连接点的集合,采用表达式指定
4) Target Object目标对象
5) Advice通知
指的是切面组件在连接点上执行的劢作。 例如:在方法调用前、方法调用后、方法调用前后等。
6) AutoProxy劢态代理
采用了AOP
后,容器返回的对象是代理对象。用户在使用时,由代理对象调用切面组件和 目标对象的功能。
a. 目标对象有接口采用JDK代理、
b. 目标对象没有接口采用CGLIB代理


这5种类型的通知,在内部调用时这样组织 

try{ 调用前置通知 环绕前置处理 调用目标对象方法 环绕后置处理 调用后置通知 }

catch(Exception e)

{ 调用异常通知 }

finally

{ 调用最终通知 }

AOP在applicationContecx文件中的配置如下:

<aop:config> 

<aop:pointcut expression="within(tarena.service..*)" id="servicePointcut"/>

 <aop:aspect id="optLoggerAspect" ref="optLogger"> 

<aop:around method="logger" pointcut-ref="servicePointcut"/> 

</aop:aspect>

 </aop:config>

使用注解如下:




6  整合hibernate

a. 使用的API
 HibernateDaoSupport
提供编写DAO组件的支持
 HibernateTemplate
提供了增删改查操作
 save():保存
 update():更新
 delete():删除
 find():查询
 如果需要分页查询,可以使用HibernateDaoSupport提供的
this.getSession()方法获取Session对象。
b. XML配置
 首先配置连接池dataSource
 其次配置SessionFactory
 最后将SessionFactory注入给所有DAO组件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值