仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 450|回复: 8
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Spring-Context之九:在bean界说中利用承继仓酷云

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:19:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
其实产生见解的过程就是训练自己发现问题,分析问题的能力。根据以上的认识我想谈下传统的学习与通过视频独立学习的优缺点:界说bean时有个abstract属性,能够设置为true或false,默许为false。
  1. 1234
复制代码
  1. <beanid="animal"class="Animal"abstract="true"><propertyname="name"value="elephant"/><propertyname="legs"value="4”/></bean>
复制代码
这里界说了一个叫elepahnt的animalbean,有4条腿,它与其他bean分歧的地方是abstract属性为true。这意味着甚么?意味着这个bean不克不及被实例化,不克不及经由过程ApplicationContext.getBean()的体例来猎取到该bean,也不克不及利用ref属性援用这个bean。不然会抛出BeanIsAbstractException的非常。
你大概会问?坑爹那?声明一个bean不克不及被实例化,那有何用?
固然有效,Spring框架开辟者也不是一帮吃饱了没事干的人,计划一些没用的功效出来。
这要共同着parent属性来用。
  1. 1234567891011121314
复制代码
  1. <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="animal"class="Animal"abstract="true"><propertyname="legs"value="4"/></bean><beanid="monkey"parent="animal"><propertyname="name"value="dudu"/></bean></beans>
复制代码
这里有两个bean,一个是animal,指定legs是4,另外一个是monkey,经由过程parent的属性指向animal,指定name为dudu。伶俐的读者大概已猜出来了,parent属性就是子bean能够承继父bean中的属性,而且在子bean中能够重载对应的属性。固然我们没显式的指定monkey的legs为4,实在它已从父beananimal中承继了这个属性。如许的优点是假如在界说大批bean时,发先大批bean存在反复属性界说时,能够抽取一个笼统bean出来,完成这些反复的属性界说,让其他bean都利用parent属性指向这个笼统bean。如许能够年夜年夜简化bean的设置。
除利用parent间接援用父bean的class外,别的也能够利用自界说的class。
Monkey.java
  1. 123456789101112
复制代码
  1. publicclassMonkeyextendsAnimal{privatebooleancanDrawing;publicbooleanisCanDrawing(){returncanDrawing;}publicvoidsetCanDrawing(booleancanDrawing){this.canDrawing=canDrawing;}}
复制代码
  1. 123456789101112131415
复制代码
  1. <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="animal"class="Animal"abstract="true"><propertyname="legs"value="4"/></bean><beanid="smartMonkey"class="Monkey"parent="animal"><propertyname="name"value="smallDudu"/><propertyname="canDrawing"value="true"/></bean></beans>
复制代码
如许smartMonkey主动承继了父bean中的legs属性,同时它的class范例也是一个新范例。
有人大概要问了,子bean的class与父bean中的class必定如果承继干系吗?谜底是不是定的。请看这个修正后的Monkeyclass,其自己并未从Animal承继。
  1. 123456789101112131415161718192021222324252627282930
复制代码
  1. publicclassMonkey{privatebooleancanDrawing;privateStringname;privateintlegs;publicbooleanisCanDrawing(){returncanDrawing;}publicvoidsetCanDrawing(booleancanDrawing){this.canDrawing=canDrawing;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}publicintgetLegs(){returnlegs;}publicvoidsetLegs(intlegs){this.legs=legs;}}
复制代码
然后还设置一样的bean。
  1. 123456789101112131415
复制代码
  1. <beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="animal"class="Animal"abstract="true"><propertyname="legs"value="4"/></bean><beanid="smartMonkey"class="Monkey"parent="animal"><propertyname="name"value="smallDudu"/><propertyname="canDrawing"value="true"/></bean></beans>
复制代码
仍然可以一般事情,而且smartMonkey中的legs仍是4。
这申明了Spring中利用parent承继父bean中的属性其实不必要子bean和父bean的class在一个承继树上。父bean更像一个模板,子bean可以主动利用父bean中的设置罢了。独一必要注重的是在父bean中界说的属性在子bean中都要存在。

先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
深爱那片海 该用户已被删除
沙发
发表于 2015-1-20 20:15:18 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
乐观 该用户已被删除
板凳
发表于 2015-1-27 14:29:56 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
透明 该用户已被删除
地板
发表于 2015-1-29 14:31:59 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
灵魂腐蚀 该用户已被删除
5#
发表于 2015-2-5 21:56:41 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
活着的死人 该用户已被删除
6#
发表于 2015-2-11 10:50:32 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
蒙在股里 该用户已被删除
7#
发表于 2015-3-10 21:33:06 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
若相依 该用户已被删除
8#
发表于 2015-3-17 10:19:32 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
小女巫 该用户已被删除
9#
发表于 2015-3-24 07:16:18 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 05:19

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表