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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

spring3学习笔记.docx

1、spring3学习笔记Spring学习笔记:1. 面向接口(抽象)编程的概念与好处2. IOC/DI的概念与好处a) inversion of controlb) dependency injection3. AOP的概念与好处4. Spring简介5. Spring应用IOC/DI(重要)a) xmlb) annotation6. Spring应用AOP(重要)a) xmlb) annotation7. Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a) opensessionInviewfilter(记住,解决什么问题,怎么解决)8. Sp

2、ring JDBC9. 面向接口(抽象)编程10. Model层或者entyty层11. 12. 更好的方法:UserService是一个接口13. 由dao屏蔽数据库的访问层。14. Dom4j要比jdom功能强大些。15. 配置文件初始化xml文件。Property就是set方法;name是userserivce有一个setUserDAO,要传这个bean(u)16. 注解开发效率比较高。17. Spring的xml根节点叫beans18. 我们要用的话,最好是装到容器里面,19. 接口只能调用属于自己的方法,在实现的类里面有方法但是在接口里没有的方法,接口是不能调用 的。什么是IOC(D

3、I),有什么好处dependency injection(依赖注入)ioc(控制反转)1. 把自己new的东西改为由容器提供a) 初始化具体值b) 装配2. 好处:灵活装配20. 在spring2.5导入spring.jar就导入了全部需要用的jar包,但是在之后,将spring.jar包分类,可以单独导入单个需要用到的包。21. 在配置spring的时候完全可以用多个配置文件。(多个人协作的时候很好用)22. Xml里面ref参考了哪一个bean23. beanFactory是一个很根的接口。继承它的另一个接口是Applicationtext。所以ApplicationContext fac

4、tory = new ClassPathXmlApplicationContext(beans.xml);和BeanFactory factory = new ClassPathXmlApplicationContext(beans.xml);都是可以的。建议使用ApplicationContext24. 当factory.getBeans(“name”)的时候,返回的是object类型,可以进行强制类型转换,也可以用factory.getBeans(“name”,UserDAO.class)来指定返回的类型,。25. 面向接口编程但实际上真正注入的是它的实现;在xml文件里面配置26. IO

5、C容器a) 实例化具体beanb) 动态装配27. AOP支持a) 安全检查b) 管理transaction28. 29. Spring ioc配置与应用30. FAQ不给提示:a) window preferences myeclipse xml xml catalogb) User Specified Entries addi. Location: D:share0900_Springsoftspring-framework-2.5.6distresourcesspring-beans-2.5.xsdii. URI: file:/D:/share/0900_Spring/soft/spri

6、ng-framework-2.5.6/dist/resources/spring-beans-2.5.xsdiii. Key Type: Schema Locationiv. Key: http:/www.springframework.org/schema/beans/spring-beans-3.0.xsd31. Xsd文件放在org.springframework.benas.factory.xml包下面32. 注入类型33. 三种注入方式 ,spring的IOC有三种注入方式 第一是根据属性注入 也叫set方法注入;第二种是根据构造方法进行注入;第三种是根据注解进行注入,这种方式我认为

7、比较好,方便,要是bean多的话,使用前两种方式会使得配置文件过于臃肿。a) b) Spring_0300_IOC_Injection_Typec) setter(重要)d) 构造方法(可以忘记)i. 参数的传递可以用index来设置索引:public UserService(UserDAO userDAO) super(); this.userDAO = userDAO; 在xml文件里面这样写 ; /把上面名字为u的对象注入进去. e) 接口注入(可以忘记)34. 写了bean标签相当于new了一个这个类,因为都会注入。35. 或者都可以,唯一区别就是name里面可以含有特殊字符。36.

8、id vs. namea) Spring_0400_IOC_Id_Nameb) name可以用特殊字符37. 可以把简单属性配在xml文件里面;简单属性的注入a) Spring_0500_IOC_SimplePropertyb) 38. Bean的生存范围:a) bean 中的scope属性b) singleton 单例(不论拿多少次都只拿到一个对象。这是默认的)c) proptotype 每次创建新的对象。39. 集合注入a) Spring_0700_IOC_Collectionsb) 很少用,不重要!参考程序40. 41. 42. administratorexample.org43. s

9、upportexample.org44. developmentexample.org45. 46. 将三个prop组装成为一个results in a setAdminEmails(java.util.Properties) call,做为一个参数传递进去。 just some string 将其组装成为一个set集合,传递;47. 自动装配(两种byName,byType)a) Spring_0800_IOC_AutoWireb) byName(按照名字自动匹配,默认先匹配它) /当属性名字与bean的name相等时候,就自动匹配;如果没有找到就会出错。 c) byType(按照类型自动匹

10、配) /它会按照类型来匹配,但是如果在找到了两个同样 的类型,那么就会出错。 d) 其余的很少用e) 如果所有的bean都用同一种,可以使用beans的属性:default-autowire48. 生命周期a) Spring_0900_IOC_Life_Cycleb) lazy-init (不重要)/当BeanFactory factory = new ClassPathXmlApplicationContext(beans.xml);xml里面的class全部初始化,只有加上lazy-init的类不初始化 ;什么时候用到了什么时候初始化;大部分不用,只有当应用每次启动的时候特别慢的时候可以考

11、虑用。Destory()方法在ClassPathXmlAplicationContext类里面的方法,不是ApplicateionContext接口不能调用。c) init-method destroy-methd 两个属性表示要调用的方法,不要和prototype一起用(了解)49. 在ioc方面用annotation比xml好,但是在aop方面用xml比annotation好;50. Annotation第一步:a) 修改xml文件,参考文档 xmlns:context=http:/www.springframework.org/schema/context/当前xml文件namespac

12、e中的context开头的对应的内容去哪里找。如果引号写在下面也不会有提示。用http开头,是最自然的不会冲突的用法,就像oracle与google发布的标准用各自的网站进行标识,就不会冲突 了。51. Dtd文件是xml文件的规范,现在规范xml文件的是xsd文件。Xml可以引入多个xsd文件。Xsd一般称为xml文件的schema.52. 理解xsl的概念。指扩展样式表语言(EXtensibleStylesheetLanguage)。53. 需要有一个参数为空的构造方法。54. Autowired(不建议使用)a) Autowired(required=false)表示本来应该注入,但是可

13、以没有。不是必须的b) Autowired也可以放在非set方法上,spring自动帮您注入。c) 默认按类型by typed) 如果想用byName,使用Qualifier(name),后面加上名字e) 写在private field(第三种注入形式)(不建议,破坏封装)f) 如果写在set上,qualifier需要写在参数上,g) 在xml文件里配置 55. Resource(重要)c) 加入:j2ee/common-annotations.jard) 默认按名称,名称找不到,按类型e) 可以指定特定名称f) 推荐使用g) 不足:如果没有源码,就无法运用annotation,只能使用xml

14、56. JSR是Java Specification Requests的缩写,意思是Java 规范请求。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。57. Resource(重要)a) 默认的注入方式是byType;b) 加入:j2ee/common-annotations.jarc) 默认按名称,名称找不到,按类型d) 可以指定特定名称e) 推荐使用f) 不足:如果没有源码,就无法运用annotation,只能使用xml58. 在xml文件

15、里加上这句, 所有的bean配置都不需要了。自动去org.example里去找。59. Component Service Controller Repository,默认情况下这些类是我们的组合之一。a) Component当成是一个组件来使用,这样 Resource放在set方法上,就可以直接注入进去。Component指定名字,用Component(“name”),推荐写上名字。b) 初始化的名字默认为类名首字母小写c) 可以指定初始化bean的名字60. Scope用注解默认是:singleton61. PostConstruct = init-method; PreDestroy =

16、 destroy-method;用注解62. 相对来说 aop要比aoc复杂多了。63. 什么是AOP64. 面向切面编程Aspect-Oriented-Programminga) 是对面向对象的思维方式的有力补充b) 加逻辑的方式i. 直接写死的ii. 继承(耦合性不强),没有源码的时候,我们可以用extends的方法来扩展自己需要的程序。iii. 组合代替了继承。(在xml的bean文件里加一个逻辑)65. 动态的把一部分逻辑加到bean上面,叫aop66. 动态代理必须实现一个接口:给我的接口里有哪些方法,我生成的代理里面就有哪些方法。 我们产生的一个代理对象里面实际上包含了一个被代理的

17、对象。public class LogInterceptor implements InvocationHandler private Object target; public Object getTarget() return target; public void setTarget(Object target) this.target = target; public void beforeMethod() System.out.println(method start); Override public Object invoke(Object proxy, Method metho

18、d, Object args) throws Throwable beforeMethod(); method.invoke(target, args); return target; Test public void testProxy() UserDAO userDAO = new UserDAOImpl();/首先产生一个被代理的对象。 LogInterceptor li = new LogInterceptor(); li.setTarget(userDAO);/将被代理的类加入到代理类去。 UserDAO userDAOProxy=(UserDAO)Proxy.newProxyIns

19、tance(UserDAO.class.getClassLoader(),new ClassUserDAO.class, li);/产生代理类。 System.out.println(userDAOProxy.getClass(); userDAOProxy.save(new User();67. 好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码68. Spring两种实现代理的方式 a) Annotationb) 加上对应的xsd文件spring-aop.xsdc) beans.xml d) 此时就可以解析对应的Annotation了e) 建立我们的拦截类f) 用Aspect注

20、解这个类g) 建立处理方法h) 用Before来注解方法i) 写明白切入点(execution .)j) 让spring对我们的拦截器类进行管理Componentk) 常见的Annotation:i. Pointcut(命名切面,下面的可以用它的名字,加在空方法上面。)ii. Beforeiii. AfterReturning(正常执行返回后,拦截)iv. AfterThrowing(拦截异常)v. Aftervi. Around(包围方法,用pjp.proceed()来调用方法,在这语句之前后加逻辑。 Aspectj回在类上来实现的;需要导入aspectj包,在xml里面用,需要加新 的命名

21、空间 xsd文件。Aspectj是专门用来实现 代理的一个框架。AspectJ是一个面向切面的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件.。 Aspectj说明它是一个切面逻辑,可以把它切到其它方法上面去。AspectComponentpublic class LogInterceptor Before(execution(public void com.bjxst.impl.UserDAOImpl.save(com.bjxst.model.User) public void beforeMethod()

22、System.out.println(method start); 还有After,AfterReturning如果没有加Component那么程序就会出错。execution不能写错,写错了会报错,要有返回值都要写上1. 织入点语法a) void !void非void返回值 。b) 参考文档(* .)给切入点的集命名,是用一个方法命名的。一定要写在一个方法上面.上面的service下是没有实现接口的类,所以要加入cglib包。如果类没有实现接口那么spring会直接用操作二进制码的方式,去生成代理的代码。这样需要加一个包(cglib-nodep-2.2.2.jar)如果实现接口就会用jdk自

23、带的proxy来帮你产生代理,但是如果没有实现接口,就会用cglib产生接口,直接更改二进制码。69. xml配置AOP,重点a) 把interceptor对象初始化b) aop:configi. aop:aspect .1. aop:pointcut2. aop:before70. 好处:可以动态的添加和删除在切面上的逻辑而不影响原来的执行代码a) Filterb) Struts2的interceptor,也是这样用的。71. 概念:a) JoinPointb) PointCut(切入点集合)任何类的任何方法的返回任何值的。支入点语法,需要的时候看文档学习,”.”代表无限多个层次。.*.*(.)不管子包里有多少层,里面的任何类任何方法。c) Aspect(切面)d) Advice(建议,加在切入点上的建议跟加在点上的业务逻辑差不多。)e) Targetf) Weave(编织)72. Around Advicea) 责任链模式73. 声明式的事务管理74. Spring整合Hibernate75. Spring里经常用的链接池叫dbcp76. 在beans.xml文件里面配置。需要加上命名空间xmlns:p=http:/www.springframework.org/s

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

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