SpringFramework
九八年的尾巴
一个愿意分享和倾听的年轻人
展开
-
SpringBoot-Spring-Mybatis事务控制示例讲解
SpringBoot+Spring+Mybatis项目https://start.spring.io/连接打通数据库配置spring.datasource.driver-class-name =com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=falsespring.datasour原创 2020-12-15 15:25:54 · 308 阅读 · 0 评论 -
Spring:常见的事务管理及传播属性和隔离级别详解
事务比如转账,A赚钱给B,A要减钱,B要加钱,不能说出现减了没加的情况,也就是多个操作,要么同时成功,要么失败后一起回滚事务特性ACID原子性:不可分割性,事务要么全部执行,要么全部不执行一致性或可串性:事务的执行使数据库从一种正确状态转换成另一种正确状态隔离性:在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其它事务持久性:事务正确提交后,将结果永久保存在数据库中,即使在事务提交后有了其它故障,事务的处理结果也会得到保存Spring常见的事务管理方式编程式事务管理:* 代码中原创 2020-12-15 15:25:13 · 95 阅读 · 0 评论 -
Spring:AOP注解配置和扫描示例讲解及环绕通知接口耗时实战(11)
声明切面类@Aspect(切面): 通常是一个类,里面可以定义切入点和通知使用注解的方式代替这些配置Stpe1:Service层public interface VideoService { int save(Video video); Video findById(int id);}Step2:ServiceImpl实现类@Service("videoService")public class VideoServiceImpl implements VideoSer原创 2020-12-15 14:10:08 · 492 阅读 · 0 评论 -
Spring:@Configuration和@Bean注解定义第三方bean的使用以及自动映射配置文件PropertySource注解使用讲解(10)
@Configuration注解比如有些了类,没有加注解,但是我想让Spring进行管理,比如配置类获取配置文件端口等@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的,相当于beans,作用为:配置spring容器(应用上下文)@bean注解:用于告诉方法产生一个Bean对象,然后这个Bean对象交给Spring管理,Spring将会将这个Bean对象放在自己的IOC容器中注意点:SpringIOC容器管理一个或者多个bean,这些bean都需要在原创 2020-12-14 23:36:08 · 466 阅读 · 0 评论 -
Spring:XML和常用注解优缺点对比以及配置项目示例(9)
Spring的使用两种方式XML配置和注解区别像之前博主写的博文,想要某一个bean被SpringIOC去管理,使用xml方式去配置注入的。不懂的可以看一下使用注解的话,将需要被SpringIOC管理的类顶部,添加@Component注解,注解达到的效果和xml配置是一样的有些公司只用其中一种,也有公司xml 配置与注解配置一起使用注解的优势:配置简单,维护方便xml的优势:单修改xml时不用改源码,不用重新编译和部署结论: 看团队开发规范进行选择,没有强调一定用哪个 更多的是原创 2020-12-14 22:56:41 · 286 阅读 · 0 评论 -
Spring:AOP快速实现通用日志打印示例讲解(8)
不懂的可以看上一章博文,分别讲解了动态代理和静态代理具体代码示例需求分析:针对Videoservice接口实现日志打印三个核心包spring-aop:AOP核心功能,例如代理工厂aspectjweaver:简单理解,支持切入点表达式aspectjrt:简单理解,支持aop相关注解引入相关包<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjwe原创 2020-12-14 21:36:12 · 163 阅读 · 1 评论 -
Spring:AOPJDK、CGLIB动态代理和静态静态代理实例讲解总结(7)
什么是代理?为某一个对象创建一个代理对象,程序不直接用原本的对象,而是由创建的代理对象来控制对原对象,通过代理类这中间一层,能有效控制对委托类对象的直接访问,也可以很好地隐藏和保护委托类对象,同时也为实施不同控制策略预留了空间什么是静态代理?由程序创建或特定工具自动生成源代码,在程序运行前,代理类的.class文件就已经存在什么是动态代理?在程序运行时,运用反射机制动态创建而成,无需手动编写代码分为JDK动态代理:基于InvocationHandler接口代理CGLIB动态代理:基于类代理实原创 2020-12-14 16:59:39 · 127 阅读 · 0 评论 -
Spring:AOP面向切面编程核心概念超详细讲解以及切入点表达式讲解(6)
什么是AOP面向切面编程?假话:方便开发者,提高开发效率,为了广大程序员谋福利真话:就是“懒” -> 懒人智慧才是厉害的Aspect Oriented Program面向切面编程在不改变原有逻辑上增加额外的功能,比如解决系统层面的问题,或者增加新的功能举例:拦截器就是最好的AOP思想,比如用户下单,我们要校验用户是否是合法用户,是不是登陆了,这些权限校验并不是在service层去做的,而是在拦截器去做的,最前置的地方。场景权限控制缓存日志处理 基本增删改做日志记录,原创 2020-12-14 15:25:53 · 1141 阅读 · 0 评论 -
Spring:bean的二次加工以及后置处理器BeanPostProcessor详解以及自动装配Autowire属性示例讲解(5)
什么是BeanPostProcessor? 是SpringIOC容器给我们提供的一个扩展接口 在调用初始化方法前后对Bean进行额外加功,AppliactionContext会自动扫描实现了BeanPostProcessord的bean,并注册这些bean为后置处理器 是Bean的统一前置处理器而不是基于某一个bean。和之前讲的init和destroy差不多,只不过这两个是针对某一个bean,而beanpostProcessor是针对所有bean举例像使用@Autowired标记这个注解注原创 2020-12-14 14:08:26 · 593 阅读 · 0 评论 -
Spring:IOC容器Bean的生命周期的int和destro方法详解(4)
Bean的生命周期1)实例化Bean对于BeanFactory容器,当客户向容器请求一个未初始化的bean时,或初始化bean的时候需要注入另一个未初始化的依赖时,容器就会调用createBean进行实例化,对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有Bean2)设置对象属性(依赖注入)实例化后的对象被封装在BeanWrapper对象中,之后Spring根据BeanDefiniton中的信息以及通过BeanWrapper原创 2020-12-14 14:06:27 · 158 阅读 · 1 评论 -
Spring:Bean的scope作用域案例讲解以及Bean之间的依赖和继承(3)
Spring的bean属性scope作用域scope:告诉spring,什么时候产生新的bean,还是一直用单个bean,对象么,可以一个或多个,怎么去配置,这个就是scope的作用singleton:单例,默认值调用getBean方法返回是同一个对象,实例会被缓存起来,效率比较高 当一个bean被标识为singleton时候,spring的IOC容器中只会存在一个该bean测试prototype:多例调用getBean方法创建不同的对象,会频繁的创建和销毁对象造成很大的开销测试:同样原创 2020-12-13 18:40:42 · 284 阅读 · 0 评论 -
Spring:核心IOC容器、DI依赖注入案例以及注入方式-List-Map注入详解(2)
什么是IOC Inverse of Control(控制反转)?是一种设计思想 将原本在程序中手动创建对象的流程,交由Spring框架来管理 核心:以前创建对象主动权是自己把控,现在创建对象的控制权反转给Spring框架,DI依赖注入和控制反转是同一概念不同角度的描述。就是应用程序在运行时依赖IOC容器来动态注入对象需要的外部资源。对象的生命周期由Spring统一管理Spring框架核心就是容器,里面存储管理的对象称为Bean,类实例。容器通过读取配置的元数据来接收对象进行实例化,配置和组装指定。元数据原创 2020-12-13 16:56:47 · 205 阅读 · 0 评论 -
Spring:Framework讲解以及IEA+Maven+Spring5.X项目创建基本使用以及配置文件详解(1)
什么是Spring?轻量级的DI(依赖注入)/IOC(控制反转-容器)和AOP容器的开源框架https://spring.io/projects/spring-framework具体代码好处管理创建和组装对象之间的依赖关系使用前:手动new创建对象这里想问一个问题,java面向对象,何为面向对象?代码中的体现是,你需要去new一个类生成一个对象,对吧。但是你写代码,比如service接口、实现类什么的。你在具体业务中,肯定是像下面这样写的吧。你都没有去new生成一个对象,但是你依然可以调原创 2020-12-13 16:28:08 · 477 阅读 · 0 评论