spring简介

来源:互联网 发布:方正字体排查软件 编辑:程序博客网 时间:2024/06/16 20:21

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
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 球釜电饭煲国外已淘汰 航天飞机为什么淘汰 等离子电视为什么淘汰 事业单位体检什么情况会淘汰 淘猫网 淘男网下载 淘男郎 淘男婚恋网 淘男网登录 淘男 淘男网登陆 淘男网推广 淘男交友网 淘男网注册 淘男网靠谱吗 淘男网网站制作 淘男网怎么注销 淘男网收费吗 深圳相亲交友活动 淘男裤 淘码接码平台 爱码 淘宝码上淘 一淘优惠码 海淘新百伦鞋码 淘米 淘米水 淘米网 淘米水发酵 淘米洗发水 淘米论坛 淘米水作用 淘米水洗发 淘米公司 怎么淘米 淘米号注册 如何淘米 淘米弹弹堂 淘米账号 淘米网络 淘米客服