Spring知识整理

原创 2016年05月31日 18:44:57

Spring

Spring是目前非常流行的框架,它可以集成基本上所以的基于J2EE的流行开源框架

1 1、Spring的导入

1、导入jar包

 dist中的所有文件

 common-loggin

2、创建beans.xml文件,通过这个文件来进行spring常规配置(在类路径下创建)

 

3、创建相应的对象

4、在beans.xml中设置对象

5、写测试类

2 2、IOC

Action Service DAO

Service

  UserDao dao = new UserDao();-->意味着依赖于实现类,将来如果更改实现类,在调用的地方需要全部修改

使用Factory可以解决这一的问题

DI来注入对象

2.1 2.1、spring的对象类型

singleton和Prototype

singleton是单例

Prototyp是多例

默认是单例的对象

使用范围:

只要属性中没有需要修改的值(dao,service这两层的数据一般不会有相应的属性会修改)所以可以考虑用单例

如果属性中有需要修改的变量如:action中会存储很多要操作的vo类,此时这个对象的状态会被修改,就要使用多例

2.2 2.2、依赖注入

基本条件:所有的类都要被spring所管理才能进行依赖注入

有多种方式可以进行注入

1、使用set注入(最常用的方式)

  1.1、提供相应的要注入的类的setter

  

  1.2、在配置文件中注入

 

2、基于构造函数的注入(了解)

2.3 2.3、属性注入和自动注入

1、属性注入

2、自动注入

一般不使用

2.1、byName是根据set的名称来注入,如果名称不对就无法注入(默认情况)

2.2、byType表示是根据类型来注入,和名称无关,如果一个类中有两个相同类型的对象就无法注入

如果要使用一般使用byName

 

2.4 2.4、基于Annotation的注入

1、设置Beans.xml的schma

2、在类上面设置

 

3、spring3.0之后的Annotation建议

由于开发中一般都是分为四层体系:data,dao,service,action,

建议在dao层

service

action层

3 3、AOP

Aspect Orient Programming(面向方面的编程)

3.1  3.1、静态代理

当需要为一些成熟的项目增加日志时,需要修改到原有代码,此时可以为原有的对象创建一个静态代理类,在这个代理类中实现相应的日志或者权限控制操作

使用静态代理带来的最大问题,需要为每一个类都加入相应的控制代码,这些代码其实是和业务逻辑没有关系的。

 

3.2  3.2、动态代理

动态代理可以将一些横切性的问题(日志管理,权限控制)提取出来成为一个模块,之后在运行的时候根据需要切入到原有正常代码中。

步骤:

 1、 创建动态代理类

 创建一个类实现InvocationHandler接口。以后创建对象就完全通过这个代理类来进行创建

 2、在代理类创建相应的要代理的对象

3、创建一个静态的newInstance方法来创建代理对象

4、创建了代理对象之后,这个代理对象在执行任何方法时都会先执行invoke方法,就可以在这个方法中加入控制信息

5 、根据以上步骤之后,日志管理就被提取成为一个独立的模块,在运行时进行加入

6、由于使用的newInstance这个static的方法注入对象,所以无法使用Annotation需要使用xml的配置文件

 

7、此时可以考虑为相应的方法增加Annotation来增强相应的操作

3.3  3.3、使用Spring实现AOP

Spring就是使用动态代理来实现AOP的

 

3.3.1 Annotation

1、使用Annotation实现

  1.1、在xml中打开aop的自动检索

  1.2、创建一个需要实现动态代理的类

  1.3、导入aspect包,spring使用的是AspectJ这个包来实现AOP,所以需要导入这个包

  1.4、在这个类上面使用@Aspect来声明这个类是一个切面类

  1.5、在相应的要进行操作横切点上面加入PointCut的说明

1.6、如果希望获取相应的调用信息,可以通过JoinPoint这个参数进行传递

1.7、其他知识

 

3.3.2 xml

使用annotation需要在大量的joinpoint上加入execution,感觉不是很方便,使用xml会相对简单一些

4 4、SSH的整合

整合三者的第一步:导入相应的包(注意检查包中的冲突)

4.1 4.1、和hibernate的整合

1、写hibernate的配置文件并且完成bean的创建,完成相应的映射

2、写spring的beans.xml

    使用spring来管理hibernate最主要的就是让Spring来管理SessionFactory

3、在beans.xml中加入spring的事务控制代码

4.2 4.2、HibernateTemplate的使用

使用HibernateTemplate可以比较方便的来做一些相应的操作

1、为HibernateTemplate注入SessionFactory

2、直接可以使用hibernateTemplate调用相应的和方法

3、模板方法的设计模式(尽可能掌握)

4.3 4.3、HibernateDaoSupport

SpringHibernate提供了一个HibernateDaoSupport的基类方便我们来处理数据信息

只用继承HibernateDaoSupport就可以了

特别注意需要注入的方式

使用hibernateDaoSupport最大的好处在于可以方便的获取到hibernate的session

特别注意不一定非得这样使用

4.4 4.4、和struts2整合

1、拷贝jar包(struts2-spring-plugin-2.3.1.jar)

2、在web.xml中加入相应配置

 

5 5、SpringMVC

当需要学习一个新的MVC框架需要从以下方面入手:

1、环境搭建(实现helloworld)

2、如何传递参数到Controller

3、如何从控制器获取参数

4、如何完成文件的上传

5、如何完成验证

6、异常的处理

7、深入学习一些原理和源代码的学习

5.1 1、整体架构

5.2 2、环境搭建

5.2.1 2.1、web.xml

5.2.2 2.2、xxx-servlet.xml

5.2.3 2.3、controller

5.2.4 2.4、Viewer

 

5.3 3、Rest

webservice SOAP  xsd

5.4 Subtopic

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring知识点总结

在学习Spring之前,先了解Spring是什么。百度百科上解释:Spring是分层的JavaSE/EE full-stack轻量级开源框架,以IoC(Inverse of Control 反转控制)...
  • zjx86320
  • zjx86320
  • 2015年06月29日 20:06
  • 3676

MySQL数据库知识整理归纳

数据库创建需要考虑的内容
  • cz28274815
  • cz28274815
  • 2014年09月04日 22:21
  • 748

spring基础知识整理

spring学习的总结1、什么是Spring的Ioc容器spring容器就是常说的Ioc容器,即控制翻转,作为程序员,当我们去实例化一个 对象时,通常需要手动new创建一个对象,并且去跟踪该对象的生命...
  • DFL_always
  • DFL_always
  • 2016年12月06日 19:21
  • 1138

Java知识整理——基础知识

什么是JVM? 为什么称Java为跨平台的编程语言? Java虚拟机(Java Virtual Machine)是可以执行Java字节码的虚拟机,每个Java源文件将被编译成字节码文件,然后在JVM...
  • Lnho2015
  • Lnho2015
  • 2015年05月09日 15:12
  • 485

SpringBoot相关的知识点总结

1,为SpringBoot的Controller类写测试类,如下: 下面针对该Controller编写测试用例验证正确性,具体如下。当然也可以通过浏览器插件等进行请求提交验证: pac...
  • ziwenCSDN
  • ziwenCSDN
  • 2017年05月18日 00:14
  • 386

《关于大数据的一些基本常识整理》

1.Hadoop生态 Hadoop生态圈介绍 Hadoop百度百科 MapReduce百度百科 Yarn百度百科 Hive百度百科 HBase百度百科 Hadoop可视化分析利器之Hue ...
  • BlackEnn
  • BlackEnn
  • 2016年08月18日 13:30
  • 1073

整理我们的知识之思维导图

学习新的知识我们该如何利用思维导图
  • lovemenghaibin
  • lovemenghaibin
  • 2014年09月24日 22:31
  • 1429

传输层知识点

传输层
  • guitarhensom
  • guitarhensom
  • 2017年04月13日 21:28
  • 280

mysql整理的一些重点知识点

mysql sql 数据库
  • fqf_520
  • fqf_520
  • 2015年09月28日 16:33
  • 263

各种数据结构的知识点归纳

各种数据结构 By SemiWaker
  • semiwaker
  • semiwaker
  • 2017年03月14日 09:02
  • 316
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring知识整理
举报原因:
原因补充:

(最多只允许输入30个字)