Spring 雇员管理系统SSH 6

通过注解的方式配置Spring属性

   

  1. 重新这样配置bean

    <bean id="employeeService" class="com.hsp.service.imp.EmployeeService"/>

  2. EmployeeService 的属性sessionFactory中添加一个注解 @Resource
  3. applicationContext.xml中启用注解

    <context:annotation-config/>

   

   

还要在applicationContext.xml中配置启用注解扫描

   

启用注解扫描:

<context:annotation-config/>

   

byName是四种自动装配类型之一

   

自动装配

<bean id="foo" class="...Foo" autowire="autowire type">

有四种自动装配类型:

1.byName寻找和属性名相同的bean,若找不到,则装不上。

2.byType:寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。

3.constructor:查找和bean的构造参数一致的一个或

多个bean,若找不到或找到多个,抛异常。按照参数的类型装配

4.autodetect: (3)(2)之间选一个方式。不确定

性的处理与(3)(2)一致。

5.defualt : 这个需要在<beans defualt-autorwire="指定" />

6.no : 不自动装配,这是autowrite的默认值.

   

懒加载的问题

   

   

第一种和第四种方案都不好的原因

   

不管以后用不用到这个departmentName,都会向数据库发送查询请求,浪费资源

   

最好的方法应该是第三种

   

本质是一个过滤器

   

web.xml中配置opensessioninview解决懒加载

所以department.hbm.xml文件中的department bean属性中就可以把lazy="false"去掉

   

该方法session周期长,这个点的好处是可以有效的减少对数据库的查询,缺点是和数据库连接的session的周期变长

posted @ 2015-03-25 09:39  keedor  阅读(172)  评论(0编辑  收藏  举报