通过注解的方式配置Spring属性
- 重新这样配置bean
<bean id="employeeService" class="com.hsp.service.imp.EmployeeService"/>
- 在EmployeeService 的属性sessionFactory中添加一个注解 @Resource
- 在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的周期变长