长久以来国内的众多应用都在使用Spring框架,它为我们带来的好处不言而喻。但问题是Spring2.0以下版本尚未支持注释装配,而企业应用大多分作MVC三层结构,每层Bean的配置渐渐膨胀,直到打开了XML文件,IDE不堪重负崩溃为止,情形实为惊人。后有了Convention over Configuration的软件设计范式,即“约定优于配置”,也作“约定编程”。Ruby and Rails和EJB3也都按此实现,Spring注释也基于此。
首先,在解答为什么要使用注释装配之前,先看看没有它时配置文件臃肿的样子,如:持久层DAO的Spring配置文件
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans ‘略去声明’>
<bean id="scDbInfoDAO" class="com.data.switching.db.dao.impl.ScDbInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scFtpInfoDAO" class="com.data.switching.db.dao.impl.ScFtpInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scParmInfoDAO" class="com.data.switching.db.dao.impl.ScParmInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scParmTypeDAO" class="com.data.switching.db.dao.impl.ScParmTypeDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scRoleDAO" class="com.data.switching.db.dao.impl.ScRoleDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scRoleMenuDAO" class="com.data.switching.db.dao.impl.ScRoleMenuDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scSiteLoadDAO" class="com.data.switching.db.dao.impl.ScSiteLoadDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scSiteStatDAO" class="com.data.switching.db.dao.impl.ScSiteStatDAOImpl"
parent="sqlMapClientDAO" />
略去同样999个配置 ... ...
<?xml version="1.0" encoding="UTF-8"?>
<beans ‘略去声明’>
<bean id="scDbInfoDAO" class="com.data.switching.db.dao.impl.ScDbInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scFtpInfoDAO" class="com.data.switching.db.dao.impl.ScFtpInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scParmInfoDAO" class="com.data.switching.db.dao.impl.ScParmInfoDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scParmTypeDAO" class="com.data.switching.db.dao.impl.ScParmTypeDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scRoleDAO" class="com.data.switching.db.dao.impl.ScRoleDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scRoleMenuDAO" class="com.data.switching.db.dao.impl.ScRoleMenuDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scSiteLoadDAO" class="com.data.switching.db.dao.impl.ScSiteLoadDAOImpl"
parent="sqlMapClientDAO" />
<bean id="scSiteStatDAO" class="com.data.switching.db.dao.impl.ScSiteStatDAOImpl"
parent="sqlMapClientDAO" />
略去同样999个配置 ... ...
使用后的情况:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<context:annotation-config />
<context:component-scan base-package="com.longtop.data.switching.db.dao"
name-generator="com.seraph.bi.suite.support.core.generator.IBatisDaoBeanNameGenerator" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<context:annotation-config />
<context:component-scan base-package="com.longtop.data.switching.db.dao"
name-generator="com.seraph.bi.suite.support.core.generator.IBatisDaoBeanNameGenerator" />
</beans>
现在大家想必都了解到为什么使用注释配置,两者之间后者很优雅,而这全在于约定优于配置。
解决方案:
改造过程是,首先在DAO的实现类中加入@Repository标签,说明这是持久层的服务。另外两层的标签@Service, @Controller,实现类如下:
Java代码
import org.springframework.stereotype.Repository;
...
@Repository
public class ScDbInfoDAOImpl extends SqlMapClientDaoSupport implements ScDbInfoDAO {
...
import org.springframework.stereotype.Repository;
...
@Repository
public class ScDbInfoDAOImpl extends SqlMapClientDaoSupport implements ScDbInfoDAO {
...
在配置文件中加入:
相关视频
相关阅读 Springtomize3支持8.3吗 springtomize3 ios8.3能用吗Springtomize3教程 Springtomize3怎么用spring forword!苹果3月9日春季发布会iphone隐藏桌面分页点方法RespringCacheFix清理iphone注销后产生的垃圾文件springtomize重新自定义的系统设置及功能增强springtomize调色温的问题springtomize2一秒钟变iphone5
热门文章 Wordpress本地安装教程dx1.5如何设置二级域名
最新文章
hbuilder有哪些快捷键Wordpress本地安装教程
Wordpress本地安装教程expression web 4文档乱码解决方法dz 2.5“收藏本版”关闭小对话框无法关闭解在制作安装软件之前,您必须先将易语言存盘,
人气排行 如何使用multipart/form-data格式上传文件Photoshop PS图层混合模式详解(非常详细)ISAPI_Rewrite3使用教程网站里添加收藏和设为首页代码桌面快捷方式图标不见了C#获取执行程序所在的当前路径的方法详解(XMLHttpRequest)进行跨域请求方法如何用远程桌面连接进行传输文件
查看所有0条评论>>