
java
文章平均质量分 68
草青工作室
既然选择了方向,必将风雨兼程。
展开
-
java_Springboot_Mybatis-Plus_自定义多数据源MybatisSqlSessionFactoryBean配置
需要在服务中集成表结构维护的功能,维护表结构就需要使用具有执行DDL脚本权限的账号。为了保证系统的安全性,考虑在工程中配置多个数据源引入不同权限账号,高权限账号只在特定逻辑中使用,其它默认业务使用低权限账号。加入新的数据源不能影响已有的功能,保证已有功能继续使用只具有CRUD权限的账号。看了几个多数据源接入方案,都不太满足需求。Springboot默认支持的多数据源Mybatis-Plus的多数据源既动态数据源dynamic-datasource插件Alibaba Druid动态数据源。原创 2023-09-27 16:22:02 · 4428 阅读 · 1 评论 -
Springboot+Mybatis-解决JPA、JDBC冲突导致@Transactional事务不生效不回滚的问题
项目中jpa、mybatis混用时,需要在使用@Bean(“xxx”)注解注册对象时,对dataSource、sqlSessionFactory、DataSourceTransactionManager显示配置;注解@EnableTransactionManagement标记启用事务,没加事务不会起作用,手动调用session对象的rollback()也无效;通过打印事务管理器,发现Mybatis环境下的事务管理器实例为JpaTransactionManager对象,明显不对。原创 2023-03-16 13:32:38 · 3455 阅读 · 0 评论 -
SpringBoot-使用链接字符串动态创建SqlSessionFactory执行任意SQL脚本
SpringBoot大大减少了使用XML配置的复杂性,但是想通过代码去实例化一个对象有点儿无从下手的感觉。SpringMVC中通过XML的配置和层级关系,大致能翻译为代码去构建一个对象。SqlSessionFactory的创建也是参考了XML的配置去构建的。环境:SpringBoot 1.56 + Pgsql 14。原创 2023-02-23 16:00:27 · 1326 阅读 · 0 评论 -
java-mybatis-自定义interceptor拦截器-获取原生sql补全公共参数
环境 pgsql + jdk1.8 + mybatis + springboot。原创 2022-11-17 16:02:29 · 3951 阅读 · 0 评论 -
Java-SpringBoot-@Transactional-事务注解的失效和不回滚的场景
Java-SpringBoot-@Transactional-事务注解的失效和不回滚的场景前言事务(Transaction)指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。SpringBoot 通过 @Transactional 注解大大简化了开发时事务使用的复杂度,但同时也引入了不少隐藏的坑。使用不当会引起事务失效、不能回滚等情况,从而破坏记录的完整性。我们梳理下导致事务失效的常见错误避免踩坑。环境Spring Boot (v2.6.7)ORM JPA数据库驱动原创 2022-05-12 17:30:46 · 1810 阅读 · 0 评论 -
springboot-@RequestParam接收参数的六种形式
springboot-@RequestParam接收参数的六种形式1.前言springboot 中接收参数的注解有 @ApiParam、@RequestBody、@RequestParam、HttpServletRequest 等,下面列举@RequestParam注解的几种使用方法。2.如何接收客户端查询参数//请求原始类型,可以取到客户端传来的所有类型参数@GetMapping("/test")public String test1(HttpServletRequest request){原创 2022-04-27 11:21:59 · 4871 阅读 · 0 评论 -
springboot-slf4j日志输出级别简要配置
springboot-slf4j日志输出级别简要配置1. 前言springboot使用ymal、yml配置,更好的将相关的配置节点聚合在一起,方便查看和增改配置项。配置可以写在application.yml、springboot.yml 任意文件内,下面简要配置使用log4j输出日志的示例。2. 环境默认情况下,Spring Boot会用Logback来记录日志springboot v1.5.6.RELEASE#依赖<dependency> <groupId>o原创 2022-04-27 10:54:58 · 7332 阅读 · 0 评论 -
java-MyBatisGenerator-(二)开发一个支持tkmybatis的插件
java-MyBatisGenerator-(二)开发一个支持tkmybatis的插件现在大多数都是前后端分离的开发模式,这样就需要定义好多实体对象从前到后包含但不限于vo、bo、dto、do,一堆o ....其实都是体力劳动,好吧,让我们把这些o交给生成器吧~~~~一、上篇讲了怎么写插件,下载就直接上代码。主要的功能有3个:1.是修改默认生成的接口文件,添加了注解和父类;2.是修改默认生成的类文件,为实体添加了tk.mybatis需要的注解,和一个select方法;3.是生成了一个vo实原创 2022-03-29 20:51:22 · 669 阅读 · 0 评论 -
java-MyBatisGenerator-(一)插件开发生成自定的代码
java-MyBatisGenerator-(一)插件开发生成自定的代码MyBatisGenerator 为我们减少庞大且容易出错的纯“体力”代码,关于它的配置和使用网上一大把就不介绍了。这里主要说下它的插件机制,自己开发插件站在巨人的肩膀继续前进~~~一、主要类介绍不得不说它的设计非常好,万物介对象。它把一个java类代码拆解的非常细,对象可以划分为两类。一类是表示数据库表、字段的对象;另一类是表示java类的对象;数据库对象有: IntrospectedTable 表示一个数...原创 2022-03-29 20:24:03 · 604 阅读 · 1 评论 -
springboot-src/main/resource-资源文件读取下载
springboot-src/main/resource-资源文件读取下载一、读取 src/main/resource 目录下的文件写的是单元测试,项目上用代码一样。目录结构java ResourceUtilsTest.javaresources text.txtResourceUtilsTest.java 代码package com.mytest;import org.junit.Test;import org.springframewor原创 2022-03-23 11:40:34 · 968 阅读 · 0 评论 -
java-maven pom.xml 文件 jar 包引用顺序
java-maven pom.xml 文件 jar 包引用顺序场景: 当项目 project1 引用了多个 a.jar、b.jar、c.jar 包, 其中每个 jar 包都间接的引用了 common.jar 包, 且引用的每个 common.jar 的版本都不一样,这时 product1 最终会用到那个?common.jar引用路径: a.jar->c...原创 2020-03-27 12:00:13 · 1975 阅读 · 0 评论 -
java-rabbitmq-官网实例02
java-rabbitmq-官网实例02描述: 1.定义持久化队列,发送持久化消息,消息接受者需要手动应答,MQ才会删除队列中的消息 2.使用 channel.basicQos() 设置多个消费者时,消息将平均分发运行: D2_NewTask.main(); //生产者 D2_Worker.main(); //消费者package原创 2017-09-19 10:53:05 · 533 阅读 · 0 评论 -
java-rabbitmq-官网实例01
java-rabbitmq-官网实例01描述:最简单实例,使用非持久化队列,生产者发布消息,MQ 将消息推送给消费者消费,之后 MQ 在队列中删除该消息依次运行:D1_Send.main();D1_Recv.main();package com.example.tutorials;import com.rabbitmq.client.Channel;impo原创 2017-09-19 10:50:23 · 447 阅读 · 0 评论 -
java-rabbitmq-交换机介绍
java-rabbitmq-交换机介绍RabbitMQ的四种交换机直连交换机:Direct exchange扇出交换机:Fanout exchange主题交换机:Topic exchange首部交换机:Headers exchange【扇出交换机(Fanout exchange)】特点:不需要自定义定义路由键,只需要将“队列名”和“交换器”进行绑原创 2017-09-19 10:49:22 · 5238 阅读 · 0 评论 -
java-FTPClient-ftp 上传文件、创建目录(支持中文目录、文件名)
java-FTPClient-ftp 上传文件、创建目录(支持中文目录、文件名)ftpclient 上传文件的封装类,匿名登录时 用户名传固定值“anonymous”、密码为“”即可。package me.grass.net;import java.io.Closeable;import java.io.File;import java.io.FileInputStr原创 2017-06-01 14:22:54 · 36173 阅读 · 8 评论 -
java-log4j-xml配置 category、logger、boot 标签使用
java-log4j-xml配置 category、logger、boot 标签使用一、节点说明:root:基础日志配置、包括使用的输出器、日志级别等;logger:自定义输出配置;category:自定义输出配置;logger、category 用法一致,可以配置通过 additivity 属性标记是否集成 root 配置;二、maven 依赖:原创 2017-09-18 18:47:58 · 7474 阅读 · 0 评论 -
java-springboot-tomcat 搭建
一、优点1.搭建一个 spring mvc 项目只需要1分钟2.不用配置 web.xml 和 各种xml3.多种方式启动项目3.1 开发阶段使用 mvn 命令运行3.2 打成 war 包后,使用 java -jar 命令运行3.3 打成 war 包后,部署到 tomcat 运行二、资料官网:http://projects.spring.io/spring-b原创 2017-08-25 12:20:40 · 423 阅读 · 0 评论 -
java-floyd最短距离算法
java-floyd最短距离算法public static void main (String[] args){ MatrixDG matrixDG = new MatrixDG(); System.out.println("初始化邻接矩阵"); matrixDG.printMatrix(); System.out.println("运行 floyd 算法")...原创 2018-12-10 20:51:02 · 526 阅读 · 0 评论 -
java-并发集合-阻塞队列 LinkedBlockingQueue 演示
java-并发集合-阻塞队列 LinkedBlockingQueue 演示package me.grass.demo.concuronte;import java.util.Date;import java.util.concurrent.CountDownLatch;import java.util.concurrent.Executors;/** * 阻塞队列 jav原创 2017-06-28 15:16:20 · 520 阅读 · 0 评论 -
java-rabbitmq-官网实例03
java-rabbitmq-官网实例03描述:发布订阅模式,Publish/Subscribe,FANOUT"扇出"交换器的使用运行:D3_EmitLog.main();D3_ReceiveLogs.main();package com.example.tutorials;import com.rabbitmq.client.Builtin原创 2017-09-19 10:54:17 · 459 阅读 · 0 评论 -
java-rabbitmq-实例pull模式拉取消息
java-rabbitmq-实例pull模式拉取消息描述:手动拉取指定队列的消息。运行:D7_PullSend.main();D7_PullRecv.main();package com.example.tutorials;import com.rabbitmq.client.AMQP;import com.rabbitmq.client.Cha原创 2017-09-19 10:57:40 · 9345 阅读 · 5 评论 -
java-springboot-tomcat 搭建
java-springboot-tomcat 搭建一、优点1.搭建一个 spring mvc 项目只需要1分钟2.不用配置 web.xml 和 各种xml3.多种方式启动项目3.1 开发阶段使用 mvn 命令运行3.2 打成 war 包后,使用 java -jar 命令运行3.3 打成 war 包后,部署到 tomcat 运行二、资料官网:htt原创 2017-09-19 11:00:42 · 604 阅读 · 0 评论 -
java-mybatis generator-生成 mysql 数据库访问文件
java-mybatis generator-生成 mysql 数据库访问文件mybatis generator 版本:1.3.5官网:http://www.mybatis.org/generator/源码:https://github.com/mybatis/generator修改后的代码下载地址:http://download.youkuaiyun.com/down原创 2017-10-16 16:38:49 · 951 阅读 · 0 评论 -
Java-五种线程池,四种拒绝策略,三类阻塞队列
Java-五种线程池,四种拒绝策略,三种阻塞队列三种阻塞队列: BlockingQueue<Runnable> workQueue = null; workQueue = new ArrayBlockingQueue<>(5);//基于数组的先进先出队列,有界 workQueue = new LinkedBlockingQueue<>...原创 2018-12-05 14:34:39 · 25748 阅读 · 9 评论 -
java-字符串拼接几种方法的性能比较
java-字符串拼接几种方法的性能比较一、测试方法:String.format();MessageFormat.format();StringBuilder();二、测试结果:性能:StringBuilder > MessageFormat > String三、运行结果:++++++++++++++++++++++++times=100000String.fo...原创 2018-12-28 16:28:51 · 1274 阅读 · 0 评论 -
java springboot 2.x 环境搭建
环境:java version 1.8Apache Maven 3.2.2ide:ideaspringboot:2.1.3.RELEASE创建步骤:1 file=>new=>mudule...2 选择 Spring Initializr:module sdk 选择 1.7,其他默认。下一步3 填写一些包信息,packaging 选择 war,java version...原创 2019-04-02 17:52:10 · 310 阅读 · 0 评论 -
java-guava 布隆筛选器用法及比较
java-guava 布隆筛选器用法及比较布隆筛选器使用场景: 一般用于一个字符串是否存的预测,如爬虫是否抓取过这个URL等。优点: 对于特大的集合来说,检索快、占用内存少等。缺点: 存在漏报率。分别使用 set、boolmfilter 检索一千万个数字,通过调整 fpp 值可以观察漏报率public static void main (Str...原创 2019-05-30 17:22:15 · 589 阅读 · 0 评论 -
java-dubbo-使用Multicast注册中心提供服务
java-dubbo-使用Multicast注册中心提供服务dubbo 的使用参考官网:http://dubbo.io/User+Guide-zh.htm;组播注册中心参考:http://dubbo.io/User+Guide-zh.htm#UserGuide-zh-Multicast%E6%B3%A8%E5%86%8C%E4%B8%AD%E5%BF%83使用组播,可以原创 2017-04-11 12:01:55 · 9338 阅读 · 5 评论 -
java-并发集合-并发队列 ConcurrentLinkedQueue 演示
java-并发集合-并发队列 ConcurrentLinkedQueue 演示目标:模拟 5 个线程同时并发读取“并发队列”,并使用 CountDownLatch 类协助计算消费耗时。package me.grass.demo.concuronte;import java.util.Date;/** * 同步队列 java.util.concurrent.Conc原创 2017-06-28 15:14:25 · 455 阅读 · 0 评论 -
java-RSA加密解密,支持分段加解密
java-RSA加密解密,支持分段加解密RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。1987年首次公布,当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数原创 2017-06-12 16:58:59 · 6315 阅读 · 0 评论 -
java-并发集合-并发hash表 ConcurrentHashMap 演示
java-并发集合-阻塞队列 ConcurrentHashMap 演示package me.grass.demo.concurrent;import java.util.Date;import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import原创 2017-06-28 16:13:02 · 887 阅读 · 0 评论 -
java-springmvc+filter 替换输出流、response、响应内容
java-springmvc+filter 替换输出流、response、响应内容一、问题1.描述:在使用 filter 替换、修改 response 输出内容时常见的错误如下异常提示getWriter() has already been called for this responsegetOutputStream() has already been called f原创 2017-05-04 19:56:02 · 11166 阅读 · 1 评论 -
java-filter 工作原理、调用规则顺序及与servlet的关系
java-filter 工作原理、调用规则顺序及与servlet的关系一、filter 是什么?作用?简单来说 filter 是一个请求进入 servlet 处理前、后都被调用的筛选器。调用前对 request 对象进行处理,调用后对 response 对象进行处理。作用:1>请求到达 servlet 前对 request 进行预处理,可以截断请求使之不能到达 serv原创 2017-05-03 09:50:52 · 2745 阅读 · 0 评论 -
java-mybatis、springmvc 整合,使用 @Transactional 时遇到的事务相关问题
java-mybatis、springmvc 整合,使用 @Transactional 时遇到的事务相关问题目标:用最简单的配置,使用 spring @Transactional 注解管理事务一、问题及解决方案问题1:配置错误描述:已经使用 @Transactional 注解,但是在 mybatis 的 sql track 检测到,“Closing non tran原创 2017-04-14 16:37:54 · 2700 阅读 · 0 评论 -
java-pdf-(itext+adobe acrobat+pdf模板)生成pdf文件
java-pdf-(itext+adobe acrobat+pdf模板)生成pdf文件环境:adobe acrobat :pdf 编辑器;itext.jar : pdf 开发组件1.制作 pdf 模板方法1.1 使用 word 随便画一个 3*4 的表格,保存为 pdf 格式,名称为 pdf-template-form.pdf1.2 打开 adobe acr原创 2017-04-28 13:46:25 · 7235 阅读 · 2 评论 -
java-pdf-itext 生成pdf 文档(支持中文字体)
java-pdf-itext 生成pdf 文档(支持中文字体)itext 版本:2.1.7package com.demo.preview;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOExceptio原创 2017-04-28 10:45:03 · 13534 阅读 · 1 评论 -
java-pdf-(flying-saucer)+freemarker 生成pdf 文档
java-pdf-(flying-saucer)+freemarker 生成pdf 文档组件版本:freemarker:2.3.26-incubatingflying-saucer-pdf:9.1.51.调用 @Test public void creatPdfByFreemarker(){ String rootPath =原创 2017-04-28 10:38:57 · 2627 阅读 · 0 评论 -
java-springmvc4+freemarker-实现layout布局页
java-springmvc4+freemarker-实现layout布局页使用 jsp 开发业务系统时,一般一个页面的js脚本针对当前页面的逻辑比较复杂无法公用,js 又常常更新。客户端由于缓存问题,浏览器会缓存js到本地,不去下载最新的 js 文件(除非引用js时加版本号,如:order.js?v=1.0)为了解决以上开发问题,可以将 js 写到 jsp 页面的下方原创 2017-04-01 16:31:35 · 6699 阅读 · 0 评论 -
java-freemarker-实现layout布局框架的一些思路
java-freemarker-实现layout布局框架的一些思路在 web 开发中经常会用到母版页、布局页的概念,将页面公共部分提炼出来,有两种思路可以服用公共页,这里使用 使用 body.html、header.html、footer.html 举例方法一:在当 body.html 使用 include 方式引用 header.html、footer.html,这需要在项目原创 2017-03-31 17:19:26 · 9498 阅读 · 1 评论 -
java-使用 freemarker 替换 jstl EL 开发 springmvc web项目
java-使用 freemarker 替换 jstl EL 开发 springmvc web项目freemarker 是一款模板引擎,不限于 web 中,但与 springmvc 结合可以替换 jstl 的功能,且更加灵活。资源:freemarker 官网:http://freemarker.org/官网提供了中文的手册可以下载到本地看:https://sourcefo原创 2017-03-31 11:08:40 · 2938 阅读 · 0 评论