1,今天在用Annotation+Hibernate做的一个Demo中加进了Spring。
2,基本的一些过程如下:
3,首先要引入支持包,Spring Core ,Spring Persistence Core,Spring AOP,还要引入Commons Pool。
4, 然后从配置文件开始:
myspringcontext.xml: 对于原来的Hibernate配置文件,我采取了保留原来配置的方法,因为在Spring中配置Hibernate的一些属性感觉不方便。
内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="annotationsessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="configLocation"
value="file:src/annotationhibernate.cfg.xml">
</property>
</bean>
<bean id="PictureProxy" class="dian.ikeel.DAL.PictureDAL">
<property name="sessionFactory">
<ref local="annotationsessionFactory" />
</property>
</bean>
</beans>
这里需要注意的就是应该用AnnotationSessionFactoryBean。
指向的hibernate.cfg.xml 在Step By Step (2)中有详细内容,可以参看。
<property name="sessionFactory">
<ref local="annotationsessionFactory" />
</property>
这句配置的作用我想就是,在getBean获取PictureProxy的时候,把他绑定到了一个SessionFactory提供的Session。省去了我们自己编码或得Session的过程了
5,我的程序其他部分逻辑是这样的:
A, 持久化层: Picture.java :用Annotatioin标注,在Step By Step (2)中有详细。
B,数据访问接口:IPictureDAL :
代码:
package dian.ikeel.IDAL;
import dian.ikeel.annotation.*;
public interface IPictureDAL {
public void insertPicture(Picture pic);
}
C,数据访问接口的实现:PictureDAL,实现了IPictureDAL ,同时继承了HibernateDAOSupport. 因为我们要用到getTemplate。如果PictureDAL没有实现接口的话,会出现类型转换错误。这涉及到动态代理的原理。
代码如下:
package dian.ikeel.DAL;
import dian.ikeel.annotation.*;
import dian.ikeel.IDAL.*;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class PictureDAL extends HibernateDaoSupport implements IPictureDAL {
public void insertPicture(Picture pic)
{
getHibernateTemplate().save(pic);
}
}
D,然后就是程序入口了:
public static void main(String[] args) {
Resource rs=new FileSystemResource("src/myspringcontext.xml");
BeanFactory bf=new XmlBeanFactory(rs);
IPictureDAL pic = (IPictureDAL)bf.getBean("PictureProxy");
Picture pic1 = new Picture();
pic1.setPicname("liang");
pic1.setPicsize(123);
pic.insertPicture(pic1);
System.out.println("AnnotationEntry excuted");
}
这样就基本完成了最简单的Hibernate+Spring with Annotation的例子。
分享到:
相关推荐
基于Struts2.18+Spring2.5+Hibernater3.3+Annotation注解开发的电子商务网站demo
Struts2+Spring2+Hibernate3+Annotation所需JAR包
jquery easyUI+struts2+spring+hibernate基于annotation实现的CRM
JSF+Spring+Hibernate(Annotation)的login小实例,建议入门的朋友看看,老鸟就免了,呵呵。环境:SQLSever2000+jdk5.0+spring2.0+hibernate3.2+jsf
rest(jersey)+hibernate+spring+annotation android开发服务器端
Struts1.3 + Hibernate3.3 + Spring3.0 Annotation整合
csh框架+cxf+spring+hibernate+mysql 注解 annotation xml json, 参考了菠萝大象的文章,感谢。
struts2.18+hibernate3.3.2+spring2.56、annotation注解 全部打包 可以用
GSH:spring3.1.0M2+Hibernate3.5+GWT2.4+JPA+Annotation+Spring4gwt0.0.1亲手整合,也可以上新浪博客去看 http://blog.sina.com.cn/s/blog_687dfecb0100yrmf.html
struts2+spring2+hibernate3 Annotation整合例子
Dwr3+Spring3 全注解 annotation 方式实现
struts2+spring2.5+hibernate3.2 annotation配置完整eclipse项目,带数据库脚本
NULL 博文链接:https://wangmengbk.iteye.com/blog/839702
下载后请修改数据库用户名和密码,即springAnnotation-hibernate.xml文件 案例系统支持功能如下: 注册功能,身份证,邮箱,手机号,姓名等校验,ajax异步获取资源 分页显示,编辑更新,多行删除等更功能,使用了MVC...
Spring+mybatis annotation形式 进行增删查改,使用maven容器,配置完整,自己运行多次无问题
学习struts2+hiberanate3.5+spring3.0 (annotation)的好项目
实现了简单用户权限登录,项目中含有mysql数据库 加入了基本的拦截器,错误类处理等 加入了BaseDao,Spring3对Hibernate4已经没有了HibernateDaoSupport和HibernateTemplate的支持,使用了原生态的API