spring简介

1.spring是一种轻量级的容器类型的框架

2.srping框架的优缺点:

1)轻量级框架,没有入侵性

2)aop

3)ioc(di)

4)易于本地测试(junit测试)

5)可以声明事务

6)集成功能很强大,可以和许多框架无缝集成

7)支持spring的jpa处理

 spring缺点:

1)对开发设计要求高

3.功能解释:

1)侵入性:侵入性的表现形式是在使用框架的同时,需要主动地继承框架的某个类,从而实现方法等,这种情况下的依赖过强,很难拿到框架以外的地方来使用,相当于写程序的同时还需要知道框架的代码,例如struts的使用,而spring在多数情况下都是采用配置文件配置的方式,这种方式能减少互相的依赖。当然了spring也不能说一丁点侵入性没有,只能说尽可能做到侵入性比较小。

2)aop主要是面向切面编程,主要是动态的将代码插入我们想要插入的地方,不用像以往一样,每次使用都需要写一遍代码。

AOP核心概念

1、横切关注点:对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点

2、切面:相当于要动态切入的代码

3、连接点:相当于被拦截的方法

4、切入点:就是要切入代码的连接点

5、通知:被拦截之后要执行的代码,通知分为前置、后置、异常、最终、环绕通知等几类

6、目标对象:代理的目标对象

7、织入:创建对象,应用切面的相关代码

8、引入:动态的添加一些方法字段等

个人认为,其中最重要的两个概念就是切点和切面

实现方式:

1.经典的基于代理的AOP :主要是有许多的实现类,许多的接口,之后就是在配置文件中进行复杂的配置

1)创建通知:实现这几个接口,把其中的方法实现了
2)定义切点和通知者:在Spring配制文件中配置这些信息
3)使用ProxyFactoryBean来生成代理
2.@AspectJ注解驱动的切面 

在类上面加上一个@Aspect 注解,之后,@Pointcut注解指定了切点,@Before和@AfterReturning指定了运行时的通知

之后在spring上进行一下配置,尤其不要忘了<aop:aspectj-autoproxy/> 有了这个Spring就能够自动扫描被@Aspect标注的切面了 

3.纯POJO切面 
这种方式与传统的方式代码并无明显不同,但是配置文件有所更改

<aop:advisor> 定义一个AOP通知者 
<aop:after> 后通知 
<aop:after-returning> 返回后通知 
<aop:after-throwing> 抛出后通知 
<aop:around> 周围通知 
<aop:aspect>定义一个切面 
<aop:before>前通知 
<aop:config>顶级配置元素,类似于<beans>这种东西 
<aop:pointcut>定义一个切点 

  1. <aop:config>  
  2.     <aop:aspect ref="springHelper">  
  3.     <aop:before method="beforeSpring" pointcut="execution(* *.spring(..))"/>  
  4.     <aop:after method="afterSpring" pointcut="execution(* *.spring(..))"/>  
  5.     </aop:aspect>  
  6. </aop:config>  

3)ioc:控制反转,主要是更改了传统的创建对象的方式,spring将创建对象的方式整个交给了spring容器,我们只需要直接取,其他的什么都不需要关心。可以减少耦合性,对比传统的对象管理方式,对象之间有很高的依赖,如果我们修改一个对象,那么对象的依赖也可能有很多变化,因此有很多耦合性的弊端,但是现在不会了

4)单元测试:

  • 可以使用主流的测试框架 Junit 等
  • 可以在测试类中使用依赖注入
  • 可以自动化事务管理,在执行结束后自动进行回滚
  • 可以使用各种注释标签,是程序代码更加简洁明了
  • 执行结束后会自动清除变更
  • 不用重启服务器

使用了spring 的单元测试,通过标签的使用

在 Spring 环境中继续进行单元测试,那么可以做如下配置:继续使用 Junit4 测试框架,包括其 @Test 注释标签和相关的类和方法的定义,这些都不用变,@RunWith(SpringJUnit4ClassRunner.class) 来启动 Spring 对测试类的支持,@ContextConfiguration指定配置,@Transactional 标签来进行管理实务,@Autowired 来引入spring中的bean

不再需要:每次开始前加载 Spring 的配置文件,每次都去更改数据库,把之前对数据库的修改清楚,自己去创建bean,现在直接引入就可以

5)配置事务

有四种配置方式;传统的两种方式,利用BeanNameAutoProxyCreator自动创建事务代理,自动创建事务代理的方式。

6)可以和mybitis,hibernate,struts等框架共同使用

7)利用spring的jpa可以访问数据库

1.直接使用名称拼接的方式,就不用写sql语句了。

2.利用一个query标签,直接写sql语句。

3.将查询结果封装成一个对象,但是要在对象的构造方法中添加。

注:本片文章主要是本人最近看了一些博客和文章以及自己的见解写的,可能有所借鉴,但绝无其他意义,希望大家有什么问题和想法可以给我留言,不喜勿怪。



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值