1、Spring核心模块组成
3、spring里applicationContext.xml文件的读取代码:
Resource resource = new ClassPathResource(“applicationContext.xml”);
//或者Resosurce resource = new
FileSysemResource(“D:\\workspace\\demo\\src\\applicationContext.xml”);
绝对路径也可以改成相对路径
FileSysemResource(“src\\applicationContext.xml”);
备注:这里的applicationContext.xml是放在src目录下的,src目录下的在发布的时候一般是打成.jar文件的,所以我们应该把applicationContext.xml文件放在WEB-INF/lib下,这样的话程序就应该通过.getRealPath来寻找该配置文件
XmlBeanFactory beanfac = new XmlBeanFactory(resource);
Beanfac.getBean(“logindao”);
applicationContext.xml文件里的配置:
<bean id=”logindao” class=”com.sun.demo.LoginDaoHibernate”></bean>//红色部分可以替换为其他的类,例如LoginDaoJdbc.
6、<bean id=”userdao” class=”com.sun.demo.UserDaoImpl”>
<property name=”emp”>
<ref bean=”e”/>
</property><!—调用类UserDaoImpl中的userdao.setEmp(e)à
<property name=”username”>
<value>gaoge</value>
</property>
<!—UserDaoImpl类中的username类型是String类型的,调用userdao.setUsername(“gaoge”)à
<property name=”date”>
<ref bean=”d”/>
</property>
<!—UserDaoImpl类中的date类型是Date类型的,调用userdao.setDate(“date”)à
</bean>
<bean id=”e” class=”com.sun.demo.Emp”><!—相当于Emp e = new Emp();à
<bean id=”d” class=”java.util.Date”></bean>
7、容器实例化
基于多配置文件的加载
String [] configFile = {“applicationContext.xml”};
ApplicationContext ac= new ClassPatchXmlApplicationContext(configFile);
BeanFactory bean = (BeanFactory)ac;
源代码示例:
ApplicationContext ctx = new
ClassPathXmlApplicationContext(“applicationContext.xml”);
IUserDao userdao = (IUserDao)ctx.getBean(“applicationContext.xml”);
Userdao.addUser();
备注:ApplicationContext是只要取一个节点,就会把applicationContext.xml里所有的节点都给实例化出来,而XmlBeanFactory是延迟加载,只实例化程序使用到的节点。
8、applicationContext.xml文件里节点配置构造函数
<bean id=”user” class=”com.sun.demo.User”>
<constructor-arg index=”0” value=”dddddd”></constructor-arg>
<constructor-arg index=”1” ref=”date”></constructor-arg>
</bean>
<bean id=”date” class=”java.util.Date”/>
1、 Spring对Hibernate的支持
先安装spring,再安装hibernate,将Hibernate中一以前的hibernate.cfg.xml文件中的配置信息放到applicationContext.xml中。让Spring对Hibernate进行管理。
(1)、HibernateTemplate的使用
源代码:UserDao.java
Public class UserDao extends HibernateTemplate{
Private SessionFactory sessionFactory;//此处必须为sessionFactory
Public static void main(String[]args){
ApplicationContext ctx = new ClassPathXmlApplicationContext(“applicationContext.xml”);
Userinfo u = ctx.getBean(“userinfo”);
This.save(u)
}
Public void setSsessionFactory (SessionFactoy sf){
This.sf = sf;
}
}
ApplicationContext.xml:
<bean id=”userdao” class=”com.sun.demo.UserDao”>
<property name=” sessionFactory”>
<ref name=”mySessionFactory”/>//此处的mySessionFactory是该配置文件创建的时候设置好的,相当于Hibernate中的SessionFactory.
</proerty>
</bean>
备注:不用创建session,也不用手动提交事务,关闭事务,Spring都已经封装好了。
(2)HibernateDaoSupport的使用
源代码:StaffDao.java
Public class StaffDao extends HibernateDaoSupport{
Public static void main(String[]args){
ApplicationContext ctx = new
ClassPathXmlApplicationContext(“applicationContext.xml”);
Userinfo u = ctx.getBean(“userinfo”);
This.getHibernateTemplate.save(u)
}
}
ApplicationContext.xml:
<bean id=”staffdao” class=”com.sun.demo.StaffDao”>
<property name=” sessionFactory”>
<ref name=”mySessionFactory”/>//此处的mySessionFactory是该配置文件创建的时候设置好的,相当于Hibernate中的SessionFactory.
</proerty>
</bean>
备注:HibernateDaoSupport继承了HibernateTemplate,并将HibernateTemplate中的
SessionFactory sessionFactory;
Public void setSessonFactory(SessionFactory sessionFactory){
This.sessionFactory = sesssionFactory;
}
这几句话封装了起来。
增删改语句:
修改:
Userinfo u = new Userinfo();
u.setUserid(“9001”);//9001是数据库中已经存在的记录
u.setUsername(“gaoge”);
this.getHibernateTemplate.update(u);
删除:
Userinfo u = new Userinfo(“9001”);
This.getHibernateTemplate.delete(u);
批量修改:
This.getHibernateTemplate().execute(new HibernateCallback(){
Public Object doInHibernate(Session session)
Throws HibernateException,SQLException{
Query q = session.createQuery(“update Userinfo set
username=’zhangsan’”);
q.executeUpdate();//executeUpdate():批量修改
return null;
}
});
加载:Userinfo u =
(Userinfo)this.getHibernateTemplate.get(Userinfo.class,”1001”);
插入或更新:
Userinfo u = new Userinfo(“5006”,”yaoming”,”male”,”22”);
This.getHibernateTemplate().saveOrUpdate(u);
分页查询:
List list = (List)This.getHibernateTemplate().execute(new HibernateCallback(){
Public Object doInHibernate(Session session)
Throws HibernateException,SQLException{
Query q = session.createQuery(“from Userinfo”);
q.setFirstResult(3); //executeUpdate():批量修改
q.setMaxResults(3);
return q.list();
}
});
分享到:
相关推荐
这篇文档“Spring相关的外文文献和翻译.doc”很可能包含了Spring框架的最新研究、最佳实践和深入分析。外文文献通常会提供原汁原味的技术细节,对于理解Spring的底层机制和设计理念非常有帮助。而中文译文则方便国内...
Spring相关的外文文献和翻译 英文文献和翻译 Spring框架:这是一个流行的开源应用框架,它可以解决很多问题。这里主要介绍Spring的基本概念,并详细介绍其中以“bean工厂”为核心的轻量级控制反转(IoC)容器。 ...
这个"spring相关jar包"包含了Spring框架的核心组件,这些组件使得开发人员能够构建可维护、松耦合的Java应用。下面将详细阐述Spring框架的主要组成部分及其重要知识点。 1. **IoC(Inversion of Control)容器**: ...
5. **SPRING压缩包文件**:提到的"SPRING"可能包含Spring框架的所有必需jar包,如spring-context、spring-core、spring-aop、spring-webmvc等。这些jar包分别对应了Spring的各个模块,如IoC容器、核心工具、AOP支持...
标题中的"spring相关jar包完整版.rar"指出这是一个包含多个Spring框架相关JAR文件的压缩包,日期为2018年4月19日。描述提到共有22个JAR包,适用于一般性的使用场景,暗示这是一套基本且全面的Spring框架库集合。 在...
标题 "spring 相关资料" 暗示了我们即将探讨的是有关Spring框架的知识,这是一个在Java开发领域广泛应用的开源框架,特别适用于企业级应用。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-...
在描述中提到的“spring自行整合的市面上几乎和spring有关的jar包”,意味着这个压缩包包含了Spring生态系统中广泛使用的第三方库,使得开发者能够快速构建基于Spring的应用。 首先,`org.dom4j`是Java中用于处理...
本主题将深入探讨Spring框架以及与之相关的jar包。 首先,我们来看`commons-logging-1.1.3-bin.zip`。Apache Commons Logging是Java的一个库,它为各种日志框架提供了一个统一的接口,比如Log4j、Java内置的日志API...
Spring框架是Java开发中不可或缺的一部分,它以其模块化、松耦合和强大的依赖注入特性而闻名。本篇文章将深入探讨Spring框架中常见的jar包及其作用,帮助开发者更好地理解和使用Spring。 1. **spring-core.jar**:...
"cxf_spring 相关 jar"的标题暗示了这个压缩包包含的是用于整合CXF与Spring的Java库。让我们深入了解一下CXF、Spring以及它们如何协同工作来构建Web服务。 CXF(Commons eXtensible Framework)是一个开源的Java...
【Spring 框架概述】 Spring 框架是 Java 开发领域中广泛使用的开源应用程序框架,它...对于进行毕业设计或论文撰写的学生来说,理解和掌握 Spring 框架的相关知识是至关重要的,可以为项目的成功实施打下坚实基础。
【CXF-Spring相关jar包】的详细解析 CXF,全称为Apache CXF,是一个强大的、开源的服务框架,主要用于构建和开发Web服务。它的名字来源于两个早期项目的合并:XFire和Celtix,意在强调其融合了XML防火墙(XFire)的...
Spring需要的相关jar包。包括spring.jar 、commons-logging.jar 如果使用了且卖弄编程(AOP)还需要下列jar文件 aspectjweaver.jar、aspectjrt.jar、cglib-nodep-2.1_3.jar 如果使用了JSR-250中的注解,如@...
本文将围绕“Spring相关的外文文献和翻译”这一主题,深入探讨Spring框架的重要知识点,并结合毕设论文的需求,为学生提供有价值的研究素材。 1. **Spring框架概述** Spring框架是于2003年由Rod Johnson提出的,它...
标题中的“两个spring相关的web项目”表明我们讨论的是基于Spring框架构建的Web应用程序。Spring是Java领域的一个核心框架,尤其在开发企业级Web应用时,它提供了强大的依赖注入(Dependency Injection,DI)和面向...
Spring 相关内容笔记 Spring 框架是 Java 平台上的一种开源框架,主要提供了 IOC(控制反转)和 AOP(面向切面)两个核心部分。下面是对 Spring 相关内容的笔记。 一、概念 1. Spring 两个核心部分:IOC 和 AOP ...
这个压缩包"spring-framework-3.0.2.RELEASE-dependencies"中包含了Spring框架的核心组件和其他相关依赖,这些组件和依赖使得开发者能够更加方便地进行开发工作。 1. **Spring Core**: 这是Spring框架的基础,提供...
这个压缩包文件"Spring相关外文文献和翻译.zip"显然包含了关于Spring框架的一些外文原文资料以及对应的中文翻译,这对于深入理解Spring框架的工作原理、最佳实践以及最新发展动态具有极高的价值。 1. **Spring框架...