六、spring可以启用注解的方式来配置属性

  1. 重新这样配置bean,这个是原先的employeeService

        <!-- 添加实现逻辑对象 --><bean id="employeeService" class="com.wang.service.imp.EmployeeService"><property name="sessionFactory" ref="sessionFactory"></property></bean>

    这个是配置后的

        <!-- 使用注解的方式配置逻辑对象 --><bean id="employeeService" class="com.wang.service.imp.EmployeeService" />

    2.添加下面的话在ApplicationContext中启用注解

        <!--  启用注解扫描:--><context:annotation-config />

    3. 在EmployeeService中添加@Resource,javax.annotation.Resource

    public class EmployeeService implements EmployeeServiceInter {@Resourceprivate SessionFactory sessionFactory ;//这里的sessionFactory 必须和ApplicationContext中的bean对应上,名字相同public void setSessionFactory(SessionFactory sessionFactory) {System.out.println("使用注解的方式@Resource实现bean的调用");this.sessionFactory = sessionFactory;}

    4. 同样的方法 action也可以用注解的方式来配置bean

    ========================================================================================

1. 解决懒加载问题,以下先介绍下hibernate中关系映射问题

2. 我们增加一个部门Department,那么雇员-》部门就是多对一,部门-》雇员就是一对多的问题

  • Department.java

    package com.wang.domain;import java.util.Set;public class Department {private Integer id;private String name;//由于一个部门下面有很多雇员,所以这里用set集合private Set<Employee> emps;public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Set<Employee> getEmps() {return emps;}public void setEmps(Set<Employee> emps) {this.emps = emps;}
    }

    View Code

  • Department.hbm.xml

    <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.wang.domain"><class name="Department" table="department"><!-- 主键策略 --><id name="id" type="java.lang.Integer"><generator class="native" /></id><property name="name" type="java.lang.String"><column name="name" length="32"></column></property><!-- 一对多的配置 --><set name="emps"><key column="department_id"></key><one-to-many class="com.wang.domain.Employee"/></set></class></hibernate-mapping>

    View Code

  • Employee.hbm.xml中添加
         <!-- 多对一雇员到部门的配置 --><many-to-one name="department" column="department_id" />

  • Employee.java中添加这个部门字段,并且实现他的set和get方法
    //employee->departmentprivate Department department;

3. 用spring提供opensessioninview的方法来解决懒加载

    <!--提供了opensessioninview的方法来解决懒加载  --><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>

4. 在页面出调用通过用之前的setattribute的loginuser即${loginuser.department.name}可将部门调出来

转载于:https://www.cnblogs.com/wang3680/archive/2013/05/14/3078007.html

ssh之雇员管理系统(7)-spring可以启用注解的方式来配置属性+解决懒加载问题...相关推荐

  1. Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置

    <Spring Cloud Alibaba基础教程>连载中,关注我一起学期!前情回顾: <使用Nacos实现服务注册与发现> <支持的几种服务消费方式> <使 ...

  2. Spring - bean的lazy-init属性(懒加载)

    默认情况下,容器初始化的时候便会把bean实例化,通常这样做可以让一些配置或者bean实例化的异常在容器启动的时候就发现,而不是在N久之后.但有时候,我们希望某个可能不会用到但又不是100%不用的be ...

  3. Spring系列(五):@Lazy懒加载注解用法介绍

    今天给大家介绍@Lazy懒加载注解用法,希望对大家能有所帮助! 1.@Lazy 懒加载注解的概念 SpringIoC容器会在启动的时候实例化所有单实例 bean .如果我们想要实现 Spring 在启 ...

  4. Spring懒加载机制原理和配置讲解

    一.什么是懒加载 Spring默认会在容器初始化的过程中,解析xml或注解,创建配置为单例的bean并保存到一个map中,这样的机制在bean比较少时问题不大,但一旦bean非常多时,spring需要 ...

  5. Spring Boot 学习系列(09)—自定义Bean的顺序加载

    此文已由作者易国强授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. Bean 的顺序加载 有些场景中,我们希望编写的Bean能够按照指定的顺序进行加载.比如,有UserServ ...

  6. Spring 天天用,bean 懒加载原理你懂吗?

    来源:小小木的博客 www.cnblogs.com/wyc1994666/p/10569091.html 普通的bean的初始化是在容器启动初始化阶段执行的,而被lazy-init修饰的bean 则是 ...

  7. spring预加载与懒加载_通过Spring将继承树加载到List中

    spring预加载与懒加载 我注意到有趣的Spring功能. 我的一位同事使用它将Spring Bean的整个继承树加载到列表中. 在学习Spring文档时错过了这一点. 让我们来看看Spring b ...

  8. spring容器的懒加载

    默认情况下,spring的IOC容器中lazy-init是false的,即没有打开懒加载模式. 如果你没有看到这个lazy-init 的参数设置就说明是false啦. 那么什么是懒加载? 懒加载--- ...

  9. 让Spring 3中jsp的数据对象使用懒加载(FetchType.LAZY)与Controller的JSR 303并存

    本文出处:http://blog.csdn.net/chaijunkun/article/details/9083171,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...

  10. Spring Bean懒加载与非懒加载

    懒加载:对象使用的时候才去创建.节省资源,但是不利于提前发现错误: 提前加载:容器启动时立马创建.消耗资源,但有利于提前发现错误 Spring 默认设置是非懒加载 1,由于在controller中会注 ...

最新文章

  1. python如何询问_学习Python问?
  2. C:#define用法
  3. 【渝粤教育】国家开放大学2018年秋季 8669-21T (1)政治经济学 参考试题
  4. 计算机网络实验:VLAN Practice Lab Setup in Packet Tracer and Configure DHCP Server for multiple VLAN
  5. base32php,ThinkPHP6.0使用extends Base方式处理后台登录逻辑
  6. mysql1040_解决mysql 1040错误Too many connections的方法
  7. 我的Mac中毒了,病毒居然叫做MacPerformance
  8. 64bitwin7通过tns远程连接不上32bitlinux的rac
  9. 趣头条自媒体审核不过怎么办,趣头条伪原创工具教程
  10. 支付宝小程序: h5跳转 小程序
  11. 【CSDN软件工程师能力认证学习精选】十分详细的React入门实例
  12. 常见Bugger篇章一
  13. 抢票软件之——py12306使用指南
  14. 中东多国与卡塔尔断交或为黑客入侵所致? FBI协助调查
  15. CSS实现文字动画效果
  16. Arun Gupta通过将HTML5与Java EE 7拥抱来提高生产力
  17. 淘宝收藏加购对流量分配有影响吗?
  18. openxml操作word的基本应用
  19. U菜1G变化8M该解决方案
  20. Linux通过主机名免密码建立互信

热门文章

  1. 晶体管制程极限之后,多层CPU是否可能?
  2. 说不尽的洒脱:不义而富且贵,于我如浮云
  3. WIN10升级的做法有待友好设计
  4. Day04_绘制矩形
  5. 10代cpu装win7_xp,win7,win8和win10哪个电脑系统最好用
  6. php实现手机号注册登录,thinkphp 手机号和用户名同时登录
  7. C++不垃圾,只是Java很傲慢
  8. Java 集合系列13之 WeakHashMap详细介绍(源码解析)和使用示例
  9. API不治,混合云何以统天下?
  10. ntp 服务导致kudu集群不可用