ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:25.57KB ,
资源ID:10650467      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10650467.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学习Spring.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学习Spring.docx

1、学习Spring Spring框架学习文档一、基于B/S的典型三层架构 展现层 业务逻辑层持久化层WebWork/StrutsSpringHibernateAction,FormBean,配置档,模版页面IOC容器AOP,hibernate的支持,事物管理映射档,Hibernate界面,DAO模式2、问题的提出例子:你做了一个网站,其中要用到一些业务逻辑;登录(返回boolean),注册(返回boolean),查询(返回HashSet)。这个模块经常被改变,或者为不同的业务服务而切换,你怎么样在Action里面调用这个模块?new 一个对象 方案1:将所有可能出现的切换情况都拷贝到Action

2、目录下。 方案2:面向界面编程,并且用到工厂。 Spring的作用:管理业务逻辑IOC 1.这种思想可以很好的实现同类不同质的模块切换。 2.开发具备属性的程序。 3.可以方便的通过配置档改变模块行为,动态注入属性值。 4.模块组装注意:只关注配置档的修改,不需要知道他具体的调用实现三、关于Bean标签:1.Bean的初始化函数和消亡函数这些函数会自动调用2.Bean的构造函数注入(不要参数的名字,但要类型) 123 456 注意:这个功能可以充分让IDE给我们做.3.Bean的 singleton(单态)注意:构造函数和初始化函数只调用一次,4.Bean的延迟加载 延迟加载(lazy-ini

3、t)只对于单态的bean,非单态的bean,本来就是延迟加载。 写了三个例子: 1.spring_demo_1 : 是简单的spring测试 2.spring_demo_2 : 是对spring的优化写法 3.spring_bean_tag :对Bean标签的练习4、Spring与Struts的整合1.场景:Struts登陆,调用Dao,要求Dao内能够显示登陆信息。2.整合问题1: 在web工程下,使用ApplicationContext context = new FileSystemXmlApplicationContext(/WEB-INF/applicationContext.xml

4、);这样读取配置文件是错的。解决方法:在web.xml中配置:context org.springframework.web.context.ContextLoaderServlet1这样就会自动读取/WebRoot/WEB-INF/applicationContext.xml,如果自定义文件名,则还需要增加: contextConfigLocation /文件路径通过WebApplicationContextUtils.getWebApplicationContext(application);得到Bean另一种方法:用Listener接口(Servlet2.3以上的版本使用)1.建立一个W

5、EB项目,在web.xml中加入 contextConfigLocation /文件路径 org.springframework.web.context.ContextLoaderListener通过WebApplicationContextUtils.getWebApplicationContext(application);得到Bean补充:在spring框架中,也有一个专门为struts服务的action,这个类是ActionSupport。它继承Action,它有lookupDispatchActionSupport等子类。详细看spring的API。2.使用ActionSupport

6、后,就不需要WebApplicationContextUtils.getWebApplicationContext(application),需要得到WebApplicationContext用这个ActionSupport。3.struts的优化写法,将 strut中action改写,并在spring中配置文件中配置就可以第一种方式:全权委托(最常用的方法) 第二种方式:将Action的生成在这里截取掉,命令其在Spring框架中生成 1.让Struts框架认识Spring框架配置文件,配置插件 2.用org.springframework.web.struts.DelegatingActi

7、onProxy类来截获Action的生成.代替struts中的type值。在struts配置文件中添加插件 第三种方式:修改spring配置文件:常用bean的name和struts配置文件中action的path相同, 将action完全交给spring去做注意:这时就不能使用action的ActionSupport类,而使用Action类。Web.xml里面也不需要像前面二种一样,无需注册spring框架一些配置,。Action的默认是单态的,我们可以改变他的状态singleton=false。增强action的灵活性。还有第四种整合方式:不常用配置RequestProcessor来截获

8、,type还是用配置action类, 但是在struts-config.xml加入:5、Spring与数据库层的整合场景:编写一个dao传人一个姓名的模糊资料,能够返回该姓名所对应的所有学生资料(struts完成)。步骤:1.建立一个学生信息类(Student.java)2.增加struts框架支持,建立处理学生信息的Action,Actionform和相关页面3.建立一个接口类:一查询学生信息的集合的方法Public ArrayList queryStuByName(String sname);4.创建一个StudentDao实现接口类,里面有三个方法( 连接数据库的方法, 实现接口的方法,

9、关闭连接的方法)5.增加spring支持,配置相关信息,将接口类型注入Action中,修改struts配置文件的action中的type值(org.springframework.web.struts.DelegatingActionProxy)截获,添加插件: 一:Spring和JDBC整合:1.在Spring里面我们可以配置数据源,相当于封装了数据库连接的基本信息并且进行了优化 。 使用这种方式需要导入mons.dbcp.BasicDataSource包,可以通过MyEclipse中导入!步骤: 1、在applicationContext.xml中新建一个DataSource数据源,2.在

10、StudentDao中添加 private DataSource dataSource;属性,并且在 注入。StudentDao直接使用DataSource.getConnection();在这样就得到了conn连接;注意;这样做完后感觉还是要初始化数据库连接,优化写法采用提供了模版(Template)来简化数据库操作。使用jdbcTemplate,改进前面的代码:1.在原来的StudentDao中Connection conn可以不要了,直接实用化DataSource dataSource,如下:传人dataSource JdbcTemplate jt = new JdbcTemplate(

11、dataSource); List stuList = jt.queryForList(sql);Jt的很多相关操作,详细参考api;注意:这样的话stuList里面放的是什么? 每一个学生都是一个元素,放入HashMap,List内存的是HashMap,所以改变在前端显示的时候,需要取出列和值。 2.还有一种方法更加改进代码的难度:使用JdbcDaoSupport类,里面有二个方法得到模版(getJdbcTemplate)和getDataSource和setDataSource的方法,改进代码,在StudentDao继承JdbcDaoSupport类,就不需要数据源属性DataSource

12、dataSource,直接在使用; JdbcTemplate jt = this.getJdbcTemplate(); List stuList = jt.queryForList(sql);二:Spring和hibernate整合:1.加载hibernate框架支持,进行相应的设置,为Student类描述一个映射文件。2.有了hibernate框架后,原来的属性 就不需要了,数据源的配置 也不需要了,因为hibernate中带有数据源的配置。3.在applicationContext.xml点击右键新建Hibernate SessionFactory。会有三个值需要设置,由于名字可以自己随便

13、起,数据源的id,数据库的方言,都是通过hibernate所以不用写,只需要让spring框架认识hibernate框架就行,找到hibernate.cfg.xml加载配置。4.在StudentDao中创建 private SessionFactory sessionFactory;增加get和set函数,并且装配到applicationContext.xml中 在StudentDao中则改为private SessionFactory sessionFactory; public List queryStuByName3(String sname) String hql = from Stu

14、dent where stuName like % + sname + %; HibernateTemplate ht = new HibernateTemplate(sessionFactory); List sList = ht.find(hql); return sList; public SessionFactory getSessionFactory() return sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) this.sessionFactory = sessionFac

15、tory; 5.前端显示要做一些修改:注意;这种方法的完成其实就是把hibernate的配置文件注入到spring框架中使其认识,有hibernate生成数据源一些信息,再通过spring生成SessionFactory,就可以对数据库进行相关操作.6.其实还可以对这种方法进行修改 1.在StudentDao中继承HinernateDaoSupport类,在这个类通过一些get方法得到想要的方法。 2.对上面中的属性sessionFactory 可以进行省略,通过getSessionFactory得到工厂, public List queryStuByName3(String sname) S

16、tring hql = from Student where stuName like % + sname + %; HibernateTemplate ht = this.getHibernateTemplate(); List sList = ht.find(hql); return sList; 这就是对上面与hibernate整合框架的一些简单优化。剩下的问题:如何在spring配置文件中配置对数据库操作的事物?写一个完整的例子:struts、spring 、hibernate框架结合 模拟一个银行系统:1.建立一个表:T_CUSTOMER(ACCOUNT,PASSWORD,CNAME

17、,CBALANCE)2.Login.jsp:输入帐号密码,提交,如果成功,则跳转到达操作页面register.jsp:输入账号,密码,确认密码,姓名,提交,可以注册,余额初始为0,3.Ope.jsp:操作页面,上面显示欢迎xxx来到银行,你的余额是?,底部有三个链接,存款,取款,退出。4.Cunkuan,jsp:表单输入一个数字,能够将余额增加这个数字,存款成功,自动跳转到ope.jsp。5.Qukuan.jsp:表单输入一个数字,能够将余额减少这个数字,取款成功,自动跳转,自动跳转到ope.jsp,如果不够取,显示:取款失败,6.要求在页面上有一些错误提示。步骤:1、用struts框架把上面

18、的写做了(action.jsp,form),自动生成完成2、导入spring框架对业务逻辑进行管理,使其自动注入,在注入之前要使sturts的配置文件认识到spring的配置文件(通过插件,修改action的type值),把请求代理截获,并在spring中配置文件进行注入。3、导入hibernate框架改进代码量,先在spring配置文件中认识hinernate 的配置文件,点击右键生成Hibernate SessionFactory,并注入到DAO中, 4、在DAO中继承HinernateDaoSupport类,使用其sessionFactory属性,然后得到HibernateTemplat

19、e模版,三个框架之间组建的之间的关系!项目实施安排:1、提取项目需求中所有的用例(动作)2、将用例按照实体(静态的内容)分类,将每个用例的详细信息描述出来。3、根据实体大致可以设计数据库:实体表,关系表一般使用的方法4、原则上,一个用例就是一个Action,有表单就有设计ActionForm,Jsp根据实际情况设计5、适当情况下,考虑使用DispatchAaction来减少模块个数。6、设计公用模块(公用类,自定义标签)7、原则上,根据第2步的分类,建立Dao,所以Dao前面名字一般都是名词,适当设计po类来支持Dao8、设计一些辅助的工具,如果过滤器,插件等等注意技巧:模块尽量降低耦合性,分工后尽量减少代码模块之间在开发时的影响。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1