人人都爱Spring加Hibernate。 但Spring MVC+hibernate的Sample如Appfuse的代码却算不得最简洁优美好读,如果在自己的项目中继续发挥我们最擅长的依样画葫芦大法,美好愿望未必会实现。 所以,Pramatic精神不灭。这个系列就是探寻最适合自己的Spring+Hibernate模式。 I-配置文件简化 我厌倦一切配置文件繁重的框架。 1.1.autowire="byName" /"byType" 假设Controller有一个属性名为customerDAO,Spring就会在配置文件里查找有没有名字为CustomerDAO的bean, 自动为Controller注入。 1.2.<bean>节点之间抽象公共定义和 Inner Bean 这太方便懒人了,想不到两个独立的XML节点都可以玩继承和派生,子节点拥有父节点的全部属性。 1.3. 宽松的配置, To XML or Not to XML 2.简化后的配置文件 1.Controller只剩下一句 <bean name="customerController" class="org.springside.bookstore.web.CustomerController" autowire="byName"/> 2.DAO也只剩一句 <bean id="customerDAO" class="org.springside.bookstore.dao.CustomerDao"/>
3.Service类只剩下5行 <bean id="customerManager" parent="baseTxService">
<property name="target"> <bean class="org.springside.bookstore.service.CustomerManager"/> </property> </bean> 3.Spring 1.2后xml语法简化 1.属性值
<property name="foo"> ![]() </property> 简化为 <property name="foo" value="fooValue"/> ![]() 2.引用 bean ![]() ![]() ![]() ![]() ![]() 3. list可以简化为空格分开的字符串 ![]() ![]() ![]() <value>wuyu</value> ![]() ![]() ![]() ![]() ![]() 4.Spring 2.0来了 如果没什么外力刺激,spring xml 可能就这样不会变了。但现在xml成了过街老鼠,被ror的默认配置和JDK5的annotation逼得不行,当然就要继续求变。 比如有好事者认为,节点名必须以bean打头,附加一个属性id来表示bean名;属性值必须搞一个property子节点,子节点上有个属性name来表示属性名,是给机器看的很不直观的东西。 <bean id="customerDAO" class="org.springside...CustomerDAO"> <property name="maxCount" value="10"> </bean> 给人看的东西应该就写成 <customerDAO class="org.springside....CustomerDAO" maxCount="10"/> Spring 2.0正用schema实现类似的语法,具体请看它的JPetStore sample。 5.使用Spring自带的DTD使编辑器Smart.
如果没有用Eclipse的Spring插件,那至少也要使用spring自带的dtd使XML编辑器smart一些,能够自动为你生成属性,判断节点/属性名称有没有拼错等。 |
|