202207-11 聊聊Spring data jpa @query使用原生SQl,需要注意的坑 目录Springdatajpa@Query使用原生Sql的坑根据代码来解说:需要注意的方法有以下几点SpringDataJPA@Query动态SQL语句思路实现Springdatajpa@Query使用原生Sql的坑根据代码来解说:@Query(value="selectbill.id_asid,bill.created_dateasdate,bill.no,lawyer_case.case_noascaseNo,"+"lawyer_case.case_nameascaseName,customer.noascustomerNo,customer.cn_nameascustomerName,"+... 继续阅读 >
202207-11 spring data 连接mongodb的两种方式 什么是MongoDBMongoDB是一个基于分布式文件存储的数据库。由C++语言编写,是一个开源数据库系统。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。MongoDB将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB文档类似于JSON对象。字段值可以包含其他文档,数组及文档数组。在高负载的情况下,... 继续阅读 >
202207-11 spring boot 不连接数据库启动的解决 目录springboot不连接数据库启动原因在于解决方法SpringBoot项目取消数据库配置1.错误2.原因3.如何不配springboot不连接数据库启动用springboot搭建的项目,在配置文件不连接数据库启动项目会报错。原因在于springboot默认会加载org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration类,DataSourceAutoConfiguration类使用了@Configuration注解向spring注入了dataSourcebean。因为工程中没有关于d... 继续阅读 >
202206-29 带你了解如何使用Spring基于ProxyFactoryBean创建AOP代理 目录1基础2JavaBean属性3JDK和CGLIB代理总结若使用SpringIoC容器(ApplicationContext或BeanFactory)作为你的业务对象(你也应该这么做!),你会想使用SpringAOPFactoryBean的一种。工厂bean引入了中间层,让它创建不同类型的对象。在Spring创建AOP代理的基本方式是使用 org.springframework.aop.framework.ProxyFactoryBean。这可以完全控制pointcuts、使用的任何通知和他们的顺序。但若不需要这样的控制,也... 继续阅读 >
202206-27 使用spring aop 统一捕获异常和写日志的示例demo 之前给大家介绍过SpringAOP的基础知识,需要的朋友点击了解下吧,这边我将给您介绍用springAOP实现的异常捕获和日志的小demo,我也会详细解释相关配置。首先给大家看一下我的工程目录:大家可以先用eclipse中新建一个maven工程,在工程中pom.xml按下面文件添加依赖:<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/... 继续阅读 >
202206-13 Spring实现HikariCP连接池的示例代码 上两篇文章,我们讲到了Spring中如何配置单数据源和多数据源,配置数据源的时候,连接池有很多选择,在SpringBoot1.0中使用的是Tomcat的DataSource,在SpringBoot2.0中,我们使用默认连接池是HikariCP,本文讲一下HikariCP。为什么SpringBoot2.0要选择HikariCP来作为默认的连接池呢?我们先看一下官网的一张对比图。一个连接周期定义为单个DataSource.getConnection()/Connection.close()。一个语句周期定义为单个Connection.... 继续阅读 >
202206-10 Spring init-method与destroy-method属性的用法解析 目录Springinit-method与destroy-method属性使用知识点介绍:操作步骤:init-method="init"和destroy-method="close"作用Springinit-method与destroy-method属性使用知识点介绍:有时候在bean初始化之后要执行的初始化方法,以及在bean销毁时执行的方法。这时就需要配置init-method和destroy-method属性,顾名思义,配置初始与销毁的方法。操作步骤:1、创建Speaker对象publicclassSpeaker{privateStringname;private... 继续阅读 >
202206-10 spring 重复注解和aop拦截的实现示例 前言:1:jdk1.8开始支持重复注解@Repeatable实现2:aop拦截需要拦截当前注解和@Repeatable指向的包装注解才可以完全拦截到,因为:1.当在在方法上只有一个注解时,aop拦截认为是非包装类型注解。2.当方法上有多个重复注解时,aop拦截认为是包装类型注解。 重复注解实现方式(RequestLimit为原始注解,RequestLimitPack为包装注解):importjava.lang.annotation.ElementType;importjava.lang.annotation.Repeatabl... 继续阅读 >
202206-10 详解Spring AOP自定义可重复注解没有生效问题 目录1.问题背景2.不啰嗦,上代码3.问题排查3.1是不是切点写得有问题,于是换成如下形式:3.2是不是使用的地方不是代理对象4.问题原因1.问题背景工作中遇到这样的场景:某个方法需要在不同的业务场景下执行特定的逻辑,该方法已经上生产,不想改变原来的代码,因此决定用AOP做个切面执行逻辑。2.不啰嗦,上代码以下为核心代码:定义注解:@Target({ElementType.TYPE,ElementType.METHOD})@Retention(RetentionPolicy.RUNTI... 继续阅读 >
202206-10 Spring AOP使用接口方式实现 目录一.环境准备二、Spring接口方式实现AOP步骤1.业务接口实现2.业务类3.通知类4.自定义切##点5.配置xml文件6.方法入口三.分析Spring提供了很多的实现AOP的方式:Spring接口方式,schema配置方式和注解.本文重点介绍Spring使用接口方式实现AOP.研究使用接口方式实现AOP,以了解为目的.更好地理解spring使用动态代理实现AOP.通常我们使用的更多的是使用注解的方式实现AOP下面来看看如何实现接口方式的AOP一.环境准备... 继续阅读 >
202205-27 详解Spring AOP 目录什么是AOP?AOP术语通知(Advice)连接点(Joinpoint)切点(Pointcut)连接点和切点的区别切面(Aspect)引入(Introduction)织入(Weaving)SpringAOPSpringAOP的特点SpringBoot集成SpringAOP-依赖引入-创建注解-定义切面-设置切点-业务接口编写-测试通知时机-正常情况-异常情况总结什么是AOP?AOP,即我们平时经常提到的面向切面编程。首先我们要理解一个叫横切关注点(cross-cuttingconcern)的概念,它... 继续阅读 >
202205-27 Docker环境下Spring Boot应用内存飙升分析与解决场景分析 目录SpringBoot应用内存飙升服务现状JVM默认内存设置优化限制JVM内存参数解释JVM常见参数java.security.egd作用优化后的Dockerfile文件优化后的效果JVM参数设置是否生效基础镜像优化OpenJ9GraalVMFabric8优化后的Dockerfile文件优化后的效果备注Xmx<limit支持springboot多环境和jvm动态配置的Dockerfile参考SpringBoot应用内存飙升一个简单的SpringBoot应用,几乎只有一个用户在用,内存竟然达到1.2G,可怕服务现状由于之前服... 继续阅读 >
202205-24 手把手写Spring框架 目录初始化阶段运行阶段HandlerAdapter形参列表:编译后就能拿到值实参列表:要运行时才能拿到值最后反射总结:这部分目标是MVC!主要完成3个重要组件:HandlerMapping:保存URL映射关系HandlerAdapter:动态参数适配器ViewResolvers:视图转换器,模板引擎SpringMVC核心组件执行流程:相对应的,用以下几个类来实现上述的功能:初始化阶段在DispatcherServlet这个类的init方法中,将mvc部分替换为initStrategies(context):并且调... 继续阅读 >
202205-24 Spring Boot中@RequestParam参数的5种情况说明 目录SpringBoot中@RequestParam参数的5种情况实例如下:SpringBoot注解:@RequestParam详解1.value:参数名字,即入参的请求参数名字2.required:该参数是否为必传项。3.defaultValue:参数的默认值SpringBoot中@RequestParam参数的5种情况实例如下://可带参数可不带参数,方法都能执行@RequestMapping("/list")publicStringtest1(LonguserId){return"";}//必须带参数,不带... 继续阅读 >
202205-24 spring mvc中@PathVariable / 带斜杠方式获取 目录springmvc@PathVariable/带斜杠方式获取实例springMVC@PathVariable中间带/问题处理问题解决思路springmvc@PathVariable/带斜杠方式获取遇上这个问题,百度google了一下,抄袭里面的内容,可以实现,在此备忘实例@RequestMapping(value="/download/{value1}/**",method=RequestMethod.GET)publicvoidgetValue(@PathVariableStringvalue1,HttpServletRequestrequest)throwsCommonException{Stringvalue... 继续阅读 >
202205-24 关于spring 扫描不到jar中class文件的原因分析及解决 目录spring扫描不到jar中class文件的原因及解决背景Q:那么我们怎么解决spring扫描不到jar中class这个问题呢?Q:那么我们怎么打包成RunableJARFILE,并且解决spring扫描不到jar中class的问题?大功告成@ComponentScan注解进行扫描的几种方式方式一:扫描包方式二:扫描类方式三:扫描包(通配式:开发常用)spring扫描不到jar中class文件的原因及解决背景公司一web项目使用的是springmvc开发的,老员工们写了一个缓存servi... 继续阅读 >