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知识整理

  • 2016年05月31日 18:43
  • 566KB
  • 下载

spring知识点代码示例整理

  • 2015年06月17日 13:21
  • 49.89MB
  • 下载

Spring IoC知识点整理

1、IOC     1.1、IOC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)?         依赖注入是控制反转的一种方式...

Spring 知识点整理 之 IOC

核心点 IOC AOP 有什么好处 IOC 自动管理 对象创建 和 对象之间的依赖管理,不用再new对象,也不用再set对象。就像使用Maven、gradle管理工程一样。 AOP 可以轻松的控制对象...
  • luwfls
  • luwfls
  • 2017年03月13日 09:41
  • 135

Spring AOP知识点整理

2、AOP     2.1 AOP中的概念 ?         1)、Joinpoint             要在其上进行织入操作的系统执行点就称之为Joinpoint。常见的Joinpoi...

Spring AOP 拦截器Advice 的知识整理

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...

spring boot 知识点整理

最近新的项目架构启用spring boot cloud,SO现在先坐下简单的技术梳理,后边的博客会把spring的技术细节,boot的技术细节重新梳理一遍 1、下面是根据条件初始化bean ...

重新整理struts2与spring整合相关知识

1.开发环境与版本 JDK1.6.0_24+Eclipse4.2+Struts2.3.15.2+Spring3.2.0+tomcat7.0.42 2.整合前准备 需要准备的jar包有如下几个: 2....
  • cs02308
  • cs02308
  • 2013年10月10日 17:30
  • 668

Spring 数据访问和事务知识点整理

3、使用Spring进行数据访问     3.1、JdbcTemplate ?         为了解决JDBC API在实际使用中的种种尴尬局面,Spring 框架提出了org.springfr...

Annotation 和Spring Annotation 知识整理

话题很大,感觉能力有限,很难把这些东西一次说透,只能稍作一个整理,供参考了。Annotation , 注解。可以粗浅理解是一种方法,这种方法能够帮助我们简化代码或者资源配置文件,提高工作效率。越来越多...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring知识整理
举报原因:
原因补充:

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