《《JavaEE企业级应用开发案例教程》教案第3课SpringBean管理(1).docx》由会员分享,可在线阅读,更多相关《《JavaEE企业级应用开发案例教程》教案第3课SpringBean管理(1).docx(6页珍藏版)》请在第壹文秘上搜索。
1、课题SpringBean管理(1)课时2课时(90min)教学目标知识目标:(1)了解XML格式配置文件的元素和属性(2)掌握Bean的装配方式能力目标:能使用不同的装配方式实现Bean的装配素质目标:通过学习Bean管理,提高根据不同需求选择合适方法的能力,提高学习和工作效率教学重难点教学重点:Bean的基础知识,Bean基于XML的装配,Bean基于注解的装配教学难点:Bean的装配方式教学方法问答法、讨论法、讲授法教学用具电脑、投影仪、多媒体课件、教材教学过程主要教学内容及步骤课前任务【教师】布置课前任务,和学生负责人取得联系,让其提醒同学通过APP或其他学习软件,完成课前任务上次课Sp
2、ringIoC容器中涉及Bean,请同学们上网查找Bean相关概念。【学生】完成课前任务考勤【教师】使用APP进行签到【学生】班干部报请假人员及原因问题导入【教师】提出以下问题:如果将SpringIoC容器看作一个大工厂,那么Bean相当于工厂的产品。这个大工厂想要生产和管理Bean,就要明确需要哪些Bean,并以哪种方式装配?【学生】思考、举手回答传授新知【教师】讲解Bean基础知识,Bean的装配方式:基于XML的装配、基于注解的装配一、Bean概述【教师】讲解Bean基础知识在Spring中,一切Java对象都被视为Bean,用于实现某个具体功能。Bean的依赖关系注入的过程,也称为Be
3、an的装配过程。Bean的装配方式有3种:XML配置文件、注解和Java类。其中,使用Java类装配Bean时,需要创建额外的配置类,不便于类之间的解耦,因此,一般不推荐使用基于Java类的装配方式。Spring中常用的两种装配方式分别是基于XML的装配和基于注解的装配。【课堂问答】【教师】随机邀请学生回答以下问题请同学们结合之前所学知识,思考如何降氐类与类之间的耦合性?【学生】聆听、思考、回答【教师】总结学生的回答中提示在Spring中,Bean使用前需要实例化。Bean的实例化方式包括构造器实例化、静态工厂实例化和实例工厂实例化。其中,构造器实例化是最常用的方式。二、Bean的装配方式【教
4、师】介绍Bean基于XML的装配,基于注解的装配(一)基于XML的装配)【教师】多媒体观看视频“基于XML的装配“(详见教材),让学生了解XML配置文件、基于XML的装配方式,以及简单的使用案例Bean的定义和管理都可以通过Bean的配置文件实现。Spring容器支持XML和Properties两种格式的配置文件。由于XML使用标准的数据传输和存储格式,便于查看和操作数据,所以在实际开发中常用XML格式的配置文件.在Spring中,XML配置文件的根元素是Vbeans,vbeans元素又包含多个bcan子元素。每个Vbean子元素可以定义一个Bean,并描述该Bean的装配方式。Vbean元素
5、提供了多个属性,其常用的属性如表3/所示(详见教材)bean元素又包含多个子元素,其常用的子元素如表3-2所示(详见教材).【课堂问答】【教师】随机邀请学生回答以下问题请同学们简述bean元素包含哪些的属性和子元素,并对及其进行简要说明。【学生】聆听、思考、回答【教师】总结学生的回答此外,constructor-argxVPrOPeny等元素还包含加1、sei和Vma子元素,用于分别设置Iistxset和map类型属性的值。其中,m叩元素还包含entry子元素,用于设置一个键值对,其key属性用于设置字符串类型的键,ref或ValUe属性用于设置键值对的值。基于XML配置文件,SPring容器
6、提供了两种装配方式:Seller方法注入和构造方法注入.1.Seller方法注入使用setter方法注入时,首先会调用Bean实现类的默认构造方法实例化Bean,然后通过Java的反射机制调用SetXXX()方法来注入属性值,大致步骤如下。(1)在Bean的实现类中提供一个默认的无参构造方法(在没有有参构造方法的情况下,可省略),并为所有需要注入的属性提供一个SetXXX()方法,这两项为必须满足的条件。(2)在XML配置文件中,通过beans元素及其bean子元素定义Beane(3)在bean元素内使用property子元素注入各个属性的值。【例题】【教师】出示【例3】,组织学生答题使用Se
7、tler方法注入奶茶和饮品店信息,输出饮品订单信息。【学生】聆听、思考、答题【教师】解腌IJ题【分析】首先创建两个Bean实现类,分别为奶茶信息类BubbleTea和饮品店类Shop;然后创建配置文件Setter.xml,在文件中定义两个Bean并为其属性注入值;最后创建执行类SeIterTeSl,在类的main()方法中获取Shop类的Bean,并调用其方法输出饮品订单信息。【实施】(1)在SPring项目下创建Com.spring.bean.setter包,并在包中创建BUbbleTea类。在类中,定义奶茶名(drinkName)、规格(SiZe)、温度(ice)和甜度(sugar)4个属
8、性及其对应的SetXXX(加getXxx()方法.实现代码详见教材(2)在com.spring.bean.setter包中创建Shop类,并在类中定义店铺名(ShopName)和BubbIeTea类对象(bubbleTea)两个属性及其对应的SetXXXo方法,然后定义ShOWe)rderlnfo()方法,在方法中调用BUbbIeTea类的getXxx()方法获取其属性值,并输出订单信息。实现代码详见教材(3)在spring项目的resources源文件夹中创建set(er.xml配置文件,并在文件中定义两个Beane第一个Bean设置id属性值为HubbleTea,实现类为BubbleTea
9、类,然后使用property子元素为bubbleTea的属性注入值;第二个Bean设置id属性值为shop,实现类为Shop类,同样使用(property子元素为shop的属性注入值,其中bubbleTea属性的值通过ref属性赋值为Bean实例bubbleTea实现代码详见教材(4)在com.spring.bean.seller包中创建SetterTesl类,在类的main。方法中加载setter.xml配置文件,然后获取Bean实例shop,最后通过shop调用ShoWorderlnfoo方法。实现代码详见教材(5)执行SetterTest类,程序运行结果如图3-1所示(详见教材)如果想要
10、实现自动装配,可以修改例3-1中setter.xml配置文件的代码,在定义Bean实例shop时设置autowire属性值为byName,实现代码如下。beanid=,shopCIaSS=com.spring.bean.setter.Shopautowire=byName!-为shop的属性注入值propertyname=shopNamevalue=小小奶茶店”/bean,提示随着应用程序的不断扩展,容器中的Bean会越来越多,Bean与Bean之间的依赖关系也会越来越复杂,这就使得所编写的XML配置文件也会越来越烦琐。为了解决这一问题,Spring提供了自动装配功能,它只适用于建立Bean与
11、Bean之间的依赖关系。2.构造方法注入构造方法注入是指通过Bean实现类的有参构造方法来注入属性值,大致步骤如下。(1)在Bean的实现类中添加一个有参构造方法,构造方法的每个参数表示一个需要注入的属性。(2)在XML配置文件中,通过beans元素及其bean子元素定义Beane(3)在bean元素内使用consiructor-arg子元素为构造方法的参数赋值,有多少参数,就需要使用多少个construclor-arg元素。【例题】*【教师】出示I3-2,组织学生答题使用构造方法注入实现例3-U【学生】聆听、思考、答题)【教师】解析例题【分析】将BubbleTea类和Shop类中的SelXX
12、X()方法替换为有参构造方法然后将配置文件中bean元素的class属性值修改为新包中Bean实现类的路径,并将property子元素修改为constclor-arg子元素.【实施】(1)在spring项目下创建com.spring.bean.constructor包,将com.spring.bean.setter包中的BUbbleTea类文件复制到该包中,并将类中的SeIXXXo方法替换为有参构造方法设置属性值。实现代码详见教材(2)将com.spring.bean.setter包中的Shop类文件复制到com.spring.bean.constructor包中,并将类中的SelXXXo方法
13、替换为有参构造方法设置属性值。实现代码详见教材(3)在spring项目的resources源文件夹中创建cons(ructor.xml配置文件,并将setter.xml配置文件的内容复制到该文件中,然后在文件中修改元素的class属性值,并将property子元素修改为子元素。实现代码详见教材(4)在com.spring.bean.constructor包中创建ConsiructorTesi类,将SetterTesi类的中的main。方法复制到该类中,并在方法中修改加载的配置文件。实现代码如下。(详见教材)(5)执行ConstructorTest类,程序运行结果如图3-2所示(详见教材)。同样
14、,如果想要实现自动装配,可以修改例3-2中constructor.xml配置文件的代码,在定义Bean实例shop时设置autowire属性值为constructor,实现代码如下。【课堂问答】【教师】随机邀请学生回答以下问题请同学们归纳总结,基于XML装配中SelIer方法注入与构造方法注入的区别。【学生】聆听、思考、回答【教师】总结学生的回答(二)基于注解的装配【教师】多媒体观看视频”基于注解的装配“(详见教材),让学生了解用于Bean装配的常用注解、使用注解改写案例在Spring的实际开发中,如果Bean的数量较多,会导致XML配置文件过于臃肿,给后期维护和升级带来一定的困难。因此,Spring提供了注解来实现Bean的装配。此处需要注意的是,使用注解装配时,Bean的实现类须提供一个默认的无参构造方法,在没有有参构造方法的情况下,可省略。【课堂问答】*【教师】随机邀请学生回答以下问题请同学们归纳总结,基于注解的装配方式相对于基于XML的装配方式,有哪些优势?【学生】聆听、思考、回答【教师】总结学生的回答Spring提供了多个注解,用于Bean的装配,常用的注解如表3-3所示(详见教材).使用注解时,只需要将注解标注在相应的类、属性或方法定义前即可。此处需要注意的是,虽然CompOnem注解可以标注任何