这次,吃透Spring02
关注我,带你了解java
Spring 最核心的思想就是不重新造轮子,开箱即用,提高开发效率。
Spring 翻译过来就是春天的意思,可见其目标和使命就是为 Java 程序员带来春天啊!感动!
语言的流行通常需要一个杀手级的应用,Spring 就是 Java 生态的一个杀手级的应用框架。
一、控制反转(IOC)
1.概述
IoC 是一种设计思想,而不是一个具体的技术实现。IoC 的思想就是将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理。不过,IoC 并非 Spring 特有,在其他语言中也有应用。
使用目的:为了耦合度降低。
耦合度:也就是两个方法之间的关联程度,越小越好。
为什么叫控制反转?
控制 :指的是对象创建(实例化、管理)的权力
反转 :控制权交给外部环境(Spring 框架、IoC 容器)
将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。 IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。
在实际项目中一个 Service 类可能依赖了很多其他的类,假如我们需要实例化这个 Service,你可能要每次都要搞清这个 Service 所有底层类的构造函数,这可能会把人逼疯。如果利用 IoC 的话,你只需要配置好,然后在需要的地方引用就行了,这大大增加了项目的可维护性且降低了开发难度。
在 Spring 中, IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象
2.实例化方式
2.1 默认构造
2.2 静态工厂方法
2.3 实力工厂方法
3.什么是Spring Bean?
简单来说,Bean 代指的就是那些被 IoC 容器所管理的对象。
我们需要告诉 IoC 容器帮助我们管理哪些对象,这个是通过配置元数据来定义的。配置元数据可以是 XML 文件、注解或者 Java 配置类。
1、Spring有两种类型Bean,一中普通bean,还有一种是工厂bean。
2.普通bean:在配置文件中,定义的类型就是返回的类型。**
3.工厂bean:在配置文件中,定义的类型可以和返回类型不一样。
将一个类声明为Bean的注解有哪些?
@Component :通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注。
@Repository : 对应持久层即 Dao 层,主要用于数据库相关操作。
@Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
@Controller : 对应 Spring MVC 控制层,主要用户接受用户请求并调用 Service 层返回数据给前端页面。
4.依赖注入的三种方式
4.1 构造方法注入
测试代码
4.2 setter方法注入(重要)
测试代码
4.3 p命名空间(使用p名称空间注入,可以简化基于xml配置方式 )
二、面向切面(AOP)
AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
Spring AOP 就是基于动态代理的,如果要代理的对象,实现了某个接口,那么 Spring AOP 会使用 JDK Proxy,去创建代理对象,而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候 Spring AOP 会使用 Cglib 生成一个被代理对象的子类来作为代理。
2.1 aop底层原理
1、aop底层使用了动态代理
有两种情况的动态代理:
1、有接口的情况,使用jdk动态代理
·创建接口实现类对象,去增强类中的方法
2、没有接口的情况,使用CGLIB动态代理
创建子类的代理对象,去增强类中的方法
2.2 JDK原生动态代理
2.2.1 MathService接口类
2.2.2 MathSerciceImpl实现类
2.2.3 ProxyFactory动态代理工厂
2.2.4 测试类
2.3 AOP动态代理
2.3.1 添加依赖
2.3.2 配置Spring.xml文件
2.3.3 MathService接口类
2.3.4 MathSerciceImpl实现类
2.3.5 LogAspect类
2.3.6 测试类
星辰大海,永不止步
END
备战高考胡鑫宇事件留给我们的思考2023年2月2日,江西省市县联合工作专班在上饶市铅山县召开新闻发布会,通报胡鑫宇事件。2022年10月14日,江西省上饶市铅山县致远中学高一学生胡鑫宇失踪。事件发生后,党委政府高
骁龙8Gen2手机迎发布高峰,骁龙8机型已过气?综合体验同样重要随着新年的结束,手机圈又开始热闹起来。目前已经官宣的新机包括了三星GalaxyS23系列真我GTNeo5荣耀Magic5系列等,不难看出2月份必然是一个新机发布高峰期。而作为各品牌
华为Mate50Pro你想知道的优缺点都在这里!优点1。鸿蒙是个非常人性化的系统,很少很少有反人类逻辑,默认设置就很舒服。2。拍照不错,很有感觉。3。这屏幕,我能给96分。作为参考,magic4给95,X80给59,荣耀70pr
快递越来越贵,顺丰一年净赚超60亿,韵达险些失守行业老二本文来源时代财经作者林心林随着A股2022年度业绩预告披露收官,快递行业过去一年的成绩单也浮于水面。1月30日,包括顺丰控股(002352。SZ)韵达股份(002120。SZ)申通
美媒拜登国情咨文要讲什么?据美国纽约时报网站2月3日报道,美国总统拜登将于2月7日发表国情咨文,这也将是拜登首次向在新一届众议院中占多数的共和党发表讲话。数周来,拜登的高级经济助手们一直在为这次国情咨文重点
人过五十,别折腾了郝有花(图片来自网络)人过五十需要在合适的位置停下脚步回到最安稳的境界,好好休息别再折腾了,儿孙自有儿孙福蓦然回首,你会发现前半生走过的,吃过的,痛过的像一部电影在上演酸甜苦辣,一
平凡而伟大的追梦人来源人民网观点频道在漫长的历史长河中,有这样一群人,他们生而平凡,但是他们拥有着不凡的梦想,脚踩六便士,心中有月亮。有人会问什么才是平凡?我认为,人类自身的渺小相对于宇宙的广阔无垠
抓住寒假的小尾巴,觅得奥帆好去处,遇见海上好时光!一转眼在寒假欢乐中的同学们还有一个周又将迎来了开学季赶在寒假结束之前趁着免费游海底世界崂山景区活动搭乘海上航线感受大美崂山的极致风景或是来青岛海底世界与海洋精灵们来一场亲密邂逅涨知
谷爱凌回斯坦福,校园内穿超短裙!秀白皙美腿,边养伤边读书当地时间2月3日,谷爱凌更新了个人INS动态,晒出了一张近照,表明自己已经回到了斯坦福大学,又开始了读书生活。众所周知,前段时间谷爱凌因伤退出XGames的比赛,之后去客串了节目主
8岁走过最远的要学费之路!蜿蜒曲折的山路越来越陡,座座高山在太阳余光的映照下有如鬼魅,突然惊起的鸟鸣闯入眼帘的树影甚至一不小心掉落的一粒石子都能激起突突的心跳和满身的鸡皮疙瘩。突然,低沉的鸟鸣划破了山谷的寂
隐形的翅膀有人被林语堂先生的生活的艺术吸引了眼球,感悟其中的经典语录。发现新大陆一般地唤俺前去伴读,言称老先生的话简直就是对你的人生总结与待人接物的形象刻画,你完全可以对号入座!林先生说人生