码迷,mamicode.com
首页 > 编程语言 > 详细

谈谈你对spring的理解

时间:2020-01-15 12:16:07      阅读:280      评论:0      收藏:0      [点我收藏+]

标签:解耦   理解   切面   lock   间接   默认   动态   自动装配   三种方式   

  1. java语言是提倡高内聚低耦合的语言,spring的出现是为了解耦,在传统的javaSE程序设计中,我们直接在对象内部通过new进行创建对象或者GetInstance(单例)等直接或者间接的调用构造方法创建一个对象,在Spring开发的模式中,spring容器使用工厂模式为我们创建对象,我们使用时不需要自己去创建,直接调用spring为我们提供的对象即可,这就是控制反转的思想,实例化一个java对象有三种方式1. 使用构造器,2. 使用静态工厂,3. 使用实例工厂,对象依赖的类不在由程序员实例化,而是通过spring容器帮我们创建实例并将实例注入到需要该对象的对象中,注入的方式有三种:1. 接口注入,2. setter方法注入,3. 构造注入;注入时常用的AutoWire使用的自动装配方式为ByName,通过Bean的名字来装配Bean,还有其他四种不常用的装配方式,为:no:默认不装配,ByType根据类型自动装配,Constructor类似于ByType,但是要提供构造器参数,没有则会抛出异常,autodetect是首先尝试使用constructor方式装配,如果不行则采用bytype方式

  2. spring还有一个核心思想就是面向切面编程,它将哪些与业务无关,却与业务模块无关的逻辑或者责任封装起来,比如事务处理,日志管理,权限控制等,便于减少系统重复的代码,减低代码间的耦合度,并有利于未来的可拓展性,springaop是基于动态代理实现的,代理的方式有两种,一种是jdk代理,一种是Cglib代理,默认为jdk代理

谈谈你对spring的理解

标签:解耦   理解   切面   lock   间接   默认   动态   自动装配   三种方式   

原文地址:https://www.cnblogs.com/Web-spring/p/12195751.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!