Spring
文章平均质量分 68
Spring基础
HDLaZy
生活不止眼前的CRUD,还有远方的框架源码!
展开
-
Spring06-AOP
引入SpringIOC: 当我们存在许多的功能,比如订单管理,用户管理灯光模块的功能,要为这些模块添加日志功能,事务管理等功能,我们可以在这些模块中添加相应的代码。但是这种添加代码的方式,不利于代码的复用,也会直接修改的原先的代码结构。或者将日志,事务等抽离成为一个方法。在这些模块中调用这些方法从而达到代码复用的目的。但即使抽离相同的部分,在后续修改功能,或者取消日志这些功能,添加功能上,还是需要从代码本身去修改。这样还是一个高耦合的程序。 怎样使之成为一个高内聚低耦合的程序呢? AOP的作用: 面向切面编原创 2022-03-12 15:56:30 · 360 阅读 · 0 评论 -
SpringAOP前提知识-动态代理
1:动态代理 相对于静态代理,动态代理在创建代理对象上更加灵活,动态代理类的字节码在程序运行时,由java反射机制动态产生。它会根据需要,通过反射机制在程序运行期间,动态的为目标对象创建代理对象,无需程序员手动编写它的源码。动态代理不仅简化了编程工作,而且提高了软件系统的可扩展性,因为反射机制可以生成任意类型的动态代理类,代理的行为可以代理多个方法,即满足生产需要的同时,又达到代码通用的目的。 2:动态代理实现方式 JDK动态代理: CGLIB动态代理 3:动态代理特点 目标对象不固定 在应用程序执行原创 2022-03-12 11:41:21 · 302 阅读 · 0 评论 -
SpringAOP前提知识-静态代理
静态代理实现: 举个简单的栗子: 我们(目标角色)需要租房(共同行为),我们找的是房屋中介(存在租房的共同行为),而房屋中介不仅会完成我们租房的需求,还会帮我们找房源,拟定合同等事务(增强共同行为)。 接口: 共同行为 public interface RentHouse { //租房 void toRentHouse(); } 目标角色: 实现行为,被代理类 public class Tenant implements RentHouse { @Override publ原创 2022-03-12 11:12:59 · 460 阅读 · 0 评论 -
Spring05-Bean作用域以及生命周期
1:Bean作用域 默认情况下,我们从Spring容器中获取的对象均是单例,对于bean的作用域类型如下。 1:singleton作用域 单例作用域: 注意: lazy-init是懒加载,当为true时,表示在Spring的容器启动时,不会实例化此对象,而是在程序调用时才会去实例化该对象,默认为false即在Spring容器启动时实例化。 1:为什么不进行懒加载? 可以提前发现潜在的配置问题 Bean对象存入缓存中,使用时不会再去实例化Bean,而是直接从缓存取,加快程序速度 默认情况下:被管理原创 2022-03-10 15:11:10 · 193 阅读 · 0 评论 -
Spring04-注解实例化对象,扫描器
1:为什么需要扫描器 实际开发中,bean数量庞大,采用手动装配bean的方式无法满足生产,spring提供了扫描方式,对扫描的bean对象统一管理,简化开发配置,提高开发效率。 2:Spring扫描器配置 引入context 开启自动扫描范围:如果bean对象未在此包内,即使添加注解也无法实例化。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/bea原创 2022-03-10 15:05:51 · 187 阅读 · 0 评论 -
Spring03-注入依赖(自动)
通过注解方式注入bena,除了xml配置,还可以通过注解配置,简化了配置文件,提高开发效率,spring有专门的注解 解释器,对定义的注解进行解析,实现bena对象的注入,通过反射技术实现。 1:修改配置文件 引入context: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.o原创 2022-03-10 09:03:59 · 271 阅读 · 0 评论 -
Spring02-注入依赖(手动)
当一个类A作为类B的属性,如何实例化类A: 主动创建: public class catService { //注入方式1:new对象 catDao cd=new catDao(); } 非主动创建: public class catService { //注入方式2:参数传入 private catDao cd; public catService(catDao catDao){ this.cd=catDao; } } 对比第二种方式,并没有像原创 2022-03-10 08:55:18 · 196 阅读 · 0 评论 -
Spring01-实例化Bean对象
1:IOC IOC即控制反转,将对象的创建,以及对象间的相互调用交给了spring的IOC容器管理,降低了耦合度。 2:构造器实例化对象 首选构造器实例化: java类:默认存在一个空参构造器 public class testBean { public void testPrint(){ System.out.println("testBean"); } } spring.xml: <bean id="testBean" class="Pojo.testBean"原创 2022-03-10 08:46:42 · 164 阅读 · 0 评论 -
简单实现Spring的对象实例化
1:引入依赖 解析xml配置文件,用到XPath和dom4j <!--解析使用的依赖dom4j和Xpath--> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> <原创 2022-03-03 22:47:56 · 653 阅读 · 0 评论