spring相关
来源:互联网 发布:用户画像需要哪些数据 编辑:程序博客网 时间:2024/06/05 18:01
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相关
- Spring 相关
- spring相关
- Spring相关
- Spring相关
- Spring相关
- Spring相关
- Spring相关
- spring相关
- Spring的相关概念
- Spring相关资源
- spring+hibernate相关异常
- Spring MVC 相关配置
- [Spring]PropertyPlaceholderConfigurer类相关
- spring事物相关统计
- spring bind相关资料
- 查看Spring事务相关
- Spring AOP相关
- 通过小故事学习网络硬件协议
- 负载均衡--大型在线系统实现的关键(上篇)(转)
- Qt 出现“undefined reference to `vtable for”原因总结
- log4j相关
- java出力文字和图片到PDF中
- spring相关
- 平地一声惊雷——ASP.NET高级VIP群诞生liao(QQ)
- wxAUI - wxWidgets用户界面框架 - 使用感受
- 在VC/MFC中为程序定义全局快捷键
- C++中的特殊字符 symbian 路径
- getClass(),class属性和getName()
- Chrome的小胡瓜(Courgette)
- YAHOO邮箱免费使用POP3功能
- Excel VBA程序设计中提高效率的一些建议