|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。上文讲了基于机关器举行依附注进,这里解说基于Setter办法举行注进。在Java天下中有个商定(Convention),那就是属性的设置和猎取的办法名通常为:set+属性名(参数)及get+属性名()的体例。boolean范例稍有分歧,可使用is+属性名()体例来猎取。
以下是一个示例。
MessageHandler.java- publicclassMessageHandler{privateMessageServicemessageService;publicMessageServicegetMessageService(){returnmessageService;}publicvoidsetMessageService(MessageServicemessageService){this.messageService=messageService;}publicStringhandle(){returnmessageService.sendService();}}
复制代码 利用Setter办法注进以下所示。- <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以下所示。- ...java.lang.IllegalStateException:FailedtoloadApplicationContext...Causedby:org.springframework.beans.factory.BeanCreationException:ErrorcreatingbeanwithnamemessageHandlerdefinedinclasspathresource[spring-context.xml]:Errorsettingpropertyvalues;nestedexceptionisorg.springframework.beans.NotWritablePropertyException:InvalidpropertymessageServiceofbeanclass[huangbowen.net.DependecyInjection.SetterInjection.MessageHandler]:BeanpropertymessageServiceisnotwritableorhasaninvalidsettermethod.DidyoumeanmessageService1?...
复制代码 固然能够同时利用机关器注进和setter办法注进。
Person.java- 12345678910111213141516171819202122
复制代码- publicclassPerson{privateStringname;publicPerson(Stringname){this.name=name;}privateintage;publicintgetAge(){returnage;}publicvoidsetAge(intage){this.age=age;}publicStringgetName(){returnname;}}
复制代码 bean界说以下:- <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年代初开发。 |
|