JAVA网页设计Spring-Context之六:基于Setter办法举行依附注进仓酷云
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。上文讲了基于机关器举行依附注进,这里解说基于Setter办法举行注进。在Java天下中有个商定(Convention),那就是属性的设置和猎取的办法名通常为:set+属性名(参数)及get+属性名()的体例。boolean范例稍有分歧,可使用is+属性名()体例来猎取。以下是一个示例。
MessageHandler.java12345678910111213141516publicclassMessageHandler{privateMessageServicemessageService;publicMessageServicegetMessageService(){returnmessageService;}publicvoidsetMessageService(MessageServicemessageService){this.messageService=messageService;}publicStringhandle(){returnmessageService.sendService();}}
利用Setter办法注进以下所示。
1234<beanid="messageService"class="huangbowen.net.DependecyInjection.ConstructorInjection.SimpleMessageService"/><beanid="messageHandler"class="huangbowen.net.DependecyInjection.SetterInjection.MessageHandler"><propertyname="messageService"ref="messageService"/></bean>
假如property的name为messageService,那末必需在类中有个叫做setMessageService的办法,如许才干完成注进。假如将MessageHandler.java中的setMessageService办法改成setMessageService1,那末注进就会失利,失利message以下所示。
1234567...java.lang.IllegalStateException:FailedtoloadApplicationContext...Causedby:org.springframework.beans.factory.BeanCreationException:ErrorcreatingbeanwithnamemessageHandlerdefinedinclasspathresource:Errorsettingpropertyvalues;nestedexceptionisorg.springframework.beans.NotWritablePropertyException:InvalidpropertymessageServiceofbeanclass:BeanpropertymessageServiceisnotwritableorhasaninvalidsettermethod.DidyoumeanmessageService1?...
固然能够同时利用机关器注进和setter办法注进。
Person.java12345678910111213141516171819202122publicclassPerson{privateStringname;publicPerson(Stringname){this.name=name;}privateintage;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}}
bean界说以下:
1234<beanid="person"class="huangbowen.net.DependecyInjection.SetterInjection.Person"><constructor-argvalue="Tom"/><propertyname="age"value="20"/></bean>
要完成一个bean,便可以利用机关器注进,也能够利用setter注进,乃至能够在一个bean中综合利用这两种体例。那末在真正开辟中应当作何弃取那?一样平常来讲,利用机关器注进的依附必需是强迫的依附,而利用setter注进的依附则是可选的依附。利用机关器注进天生的对象是完整初始化了的,用户能够间接拿来用,可是比拟于setter办法而言用户也就得到了定制化的才能。假如你发明机关器参数过量,那末极可能申明该类承当的职责过量,应当从计划解耦的角度对类的职责举行拆分。利用setter注进的对象优点是,用户能够按需从头注进新的属性。
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 Java是一种计算机编程语言,拥有跨平台、面向对java 是一种使网页(Web Page)产生生动活泼画面的语言 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
页:
[1]