Spring框架
文章平均质量分 72
骑上不归路 i
只要学不死,就往死里学!
展开
-
java动态代理和Cglib动态代理的区别和使用
System.out.println("传入参数为 userName: "+userName+" password: "+password);System.out.println("传入参数为 userName: "+userName);3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换。//需要代理的目标对象。(1)JDK动态代理只能对实现了接口的类生成代理,而不能针对类。1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现。...原创 2022-08-30 19:58:19 · 788 阅读 · 0 评论 -
spring中 过滤器(Filter)与拦截器(Interceptor )区别
这样在我们业务中比如要记录系统日志,日志肯定是在afterCompletion之后记录的,否则中途失败了,也记录了,那就扯淡了。方法中的某一个,如果实现HandlerInterceptor接口的话,三个方法必须实现,不管你需不需要,此时spring提供了一个HandlerInterceptorAdapter适配器(种适配器设计模式的实现),允许我们只实现需要的回调方法。1、日志记录,可以记录请求信息的日志,以便进行信息监控、信息统计等。需要拦截的路径,这里匹配所有。3、性能监控:典型的是慢日志。...原创 2022-08-30 19:51:12 · 218 阅读 · 0 评论 -
springboot定义restful统一结果返回
但是,由于我们的项目可能是由很多人开发的,所以我们最好将返回的结果统一起来,这样每个人都可以返回相同的数据格式,这不仅规范了代码,也方便了前端人员调用,否则每个人都会按照自己的风格编写,代码会变得非常混乱。例如,0表示成功,1表示失败,2表示必须传递错误的参数,4表示系统异常,依此类推。然后还有我们的核心数据。这种类型必须是多样的,所以我们需要使用统一的父类,以便对象可以接收所有类型。例如,用户名已经存在,事实上,业务并不成功,但HTTP的结果肯定是200, 因此我们需要一个代码来描述我们的业务状态。...原创 2022-08-30 17:34:32 · 450 阅读 · 0 评论 -
Shareding JDBC分库分表
springboot整合sharding-jdbc实现按年分库按月分表(实现、简析篇)1.前言: 此方案为适用对时间依赖度较高的数据进行水平切分,如果你正好符合,那么你可以看看此篇,不符合也可以看看,毕竟sharding-jdbc对分库分表的方案实现度很高,可根据自身实际情况进行数据切分,如果你对以下概念已经有共了解,可直接跳到代码环节2.分库分表概念 在做实现之前,我们需要了解到何为分库分表,为何要这样做,这样做有何利弊? 由于关系型数据库的先天特性,在单表数据量达到一定体量的时候,就会出原创 2021-09-26 16:47:07 · 3084 阅读 · 3 评论 -
Java反射机制及使用
**反射概述**反射是框架的灵魂!* JAVA反射机制:是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 可以拿到类的字节码对象,通过字节码对象拿到这个类中所有的信息。 (类的信息:类名,包名,属性,构造方法,普通方法,继承来的方法)要使用反射: 步骤: 1. 拿到类的字节码对象 2. 取出类中信息 3. 使用类的信息一、获取类的字节码对象*原创 2021-09-24 10:19:59 · 86 阅读 · 0 评论 -
SpringBoot中try/catch异常并回滚事务(自动回滚/手动回滚/部分回滚)
业务需求实现一个异步任务,先记录任务状态为执行中,直接返回结果给前端,然后异步执行任务的业务逻辑,如果执行过程中抛出异常,捕获异常并更新任务状态为执行失败;若未抛出异常,更新任务状态为执行成功异常处理1、自动回滚 @Transactional(rollbackFor = Exception.class) public void asyncJob() throws Exception { success(); //假如exception这个操作数据库的方法原创 2021-08-11 18:03:43 · 8532 阅读 · 3 评论