Spring知识整理

7 篇文章 0 订阅
7 篇文章 0 订阅

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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值