spring
spring
my_styles
重在分享
展开
-
spring 设计模式
(当一个类A不能直接或者不能访问某个类C的情况下,可以找个一个代理类B去访问)定义了对象之间的一对多依赖,让多个观察者对象同时监听某一个主题对象, 当主题对象发生变化时,它的所有依赖者都会收到通知并更新。spring aop代理模式在增强方法过程有前置通知、后置通知、异常通知这个三个通知实际上是借助适配器模式实现的。ioc容器里面的bean 默认就是单例的,((只有一个bean)避免频繁的创建销毁对象,所有采用单例模式)定义了算法族,分别封装起来,让它们之间可以互相替换,此模式的变化独立于算法的使用者。原创 2023-02-05 11:41:10 · 1902 阅读 · 0 评论 -
java 高级面试题整理
SpringMVC的控制器是单例的吗?第一次:类是多例,一个普通属性和一个静态属性总结尽量不要在controller里面去定义属性,如果在特殊情况需要定义属性的时候,那么就在类上面加上注解@Scope("prototype")改为多例的模式.以前struts是基于类的属性进行发的,定义属性可以整个类通用,所以默认是多例,不然多线程访问肯定是共用类里面的属性值的,肯定是不安全的,但是springmvc是基于方法的开发,都是用形参接收值,一个方法结束参数就销毁了,多线程访原创 2023-01-09 09:52:52 · 2447 阅读 · 0 评论 -
Synchronized -- jdk1.6版本之前和之后对比
测试一个案例 jdk1.6版本之前;public class Test { public static void main(String[] args) throws InterruptedException { A a = new A(); long start = System.currentTimeMillis(); Thread t1 = new Thread(() ->{ for (int i = 0; i原创 2021-03-02 08:53:53 · 253 阅读 · 0 评论 -
java 高级面试题分布式与微服务(借鉴)
CAP理论是分布式领域中⾮常重要的⼀个指导理论,C(Consistency)表示强⼀致性,A(Availability)表示可⽤性,P(Partition Tolerance)表示分区容错性,CAP理论指出在⽬前的硬件条件下,⼀个分布式系统是必须要保证分区容错性的,⽽在这个前提下,分布式系统要么保证CP,要么保证AP,⽆法同时保证CAP。 分区容错性表示,⼀个系统虽然是分布式的,但是对外看上去应该是⼀个整体,不能由于分布式系统内部的某个结点挂点,或⽹络出现了故障,⽽导致系统对外出现异常。所以,原创 2022-12-06 11:01:02 · 698 阅读 · 0 评论 -
java 高级面试题(借鉴)(中)
@Import + @Configuration + Spring spi ⾃动配置类由各个starter提供,使⽤@Configuration + @Bean定义配置类,放到METAINF/spring.factories下 使⽤Spring spi扫描META-INF/spring.factories下的配置类 使⽤@Import导⼊⾃动配置类 使⽤spring + springmvc使⽤,如果需要引⼊mybatis等框架,需要到xml中定义原创 2022-12-06 09:59:04 · 528 阅读 · 0 评论 -
java 高级面试题(借鉴)(上)
1.7版本1. 1.7版本的ConcurrentHashMap是基于Segment分段实现的2. 每个Segment相对于⼀个⼩型的HashMap3. 每个Segment内部会进⾏扩容,和HashMap的扩容逻辑类似4. 先⽣成新的数组,然后转移元素到新数组中5. 扩容的判断也是每个Segment内部单独判断的,判断是否超过阈值1.8版本1. 1.8版本的ConcurrentHashMap不再基于Segment实现。原创 2022-11-28 11:28:37 · 974 阅读 · 0 评论 -
java pdf转word 支持图片转换到word(最大程度的解决原PDF)
处理图片的工具-代码。原创 2022-11-21 12:01:02 · 1523 阅读 · 2 评论 -
java 之 String 字符串转换大小写
【代码】java 之 String 字符串转换大小写。原创 2022-11-04 18:01:37 · 2418 阅读 · 0 评论 -
java spring 事务失效的12种情况
2. 方法用final修饰3.方法内部调用有时候我们需要在某个Service类的某个方法中,调用另外一个事务方法,比如: 在该Service类中注入自己; 在该Service类中注入自己也是一种选择。具体代码如下:4.未被spring管理没有添加 @Controller、@Service、@Component、@Repository等注解5.多线程调用两个方法不在同一个线程中,获取到的数据库连接不一样,从而是两个不同的事务6.表不支持事务数据库 存储引擎 不转载 2022-10-11 16:23:29 · 1921 阅读 · 0 评论 -
java 读取 xml 配置文件内容
java 读取 xml 配置文件内容原创 2022-09-30 11:04:49 · 1513 阅读 · 0 评论 -
java 通过 冰蓝 word 转pdf ,最大程度包装pdf 样式和word接近
【代码】java 通过 冰蓝 word 转pdf ,最大程度包装pdf 样式和word接近。原创 2022-09-08 14:55:45 · 1116 阅读 · 1 评论 -
java使用poi导出excel 包括多个工作簿
所需依赖,注意这里的版本不能低于4.0,最好用4.1.2,或者高板本的也行controller层service层原创 2022-06-09 10:13:11 · 1673 阅读 · 1 评论 -
java word转pdf 后通过 PdfReader 和 PdfStamper对pdf添加水印 通过poi等组件实现
所需jar包地址执行代码转换前的word转换后的 pdf 执行结果和时间,项目中实际测试大概是5-6秒左右(和服务器性能相关)原创 2022-06-02 16:59:27 · 2902 阅读 · 5 评论 -
Spring是怎么解决循环依赖的:
面试题:Spring是怎么解决循环依赖的:通过三级缓存实现循环依赖的,原理是使用了3个Map,singletonObjects 一级缓存(单例池),用于保存实例化、注入、初始化完成的bean实例首先Spring会尝试从一级缓存中获取singletonObjectsprotected Object getSingleton(String beanName, boolean allowEarlyReference) { Object singletonObject = this.原创 2021-01-29 09:54:33 · 994 阅读 · 0 评论 -
java富文本(html)导出到 word (包括图片和文本内容)分别是url 和base64两种格式 - poi 和Jsoup; Jsoup.parse 获取body里面所有的子元素
.原创 2022-03-15 09:59:28 · 6247 阅读 · 3 评论 -
java 读取服务器(网路)的word模板文件并替换自定义的数据(图片)
读取服务器(网路)的word模板文件并替换自定义的数据(图片) public static void main(String[] args) throws Exception { ConfigureBuilder builder = Configure.builder(); Map map = Maps.newHashMap(); map.put("id", "123"); map.put("img", Pictures.ofUrl原创 2022-03-10 15:52:49 · 1256 阅读 · 3 评论 -
基于redis的分布式锁,可实现高并发
SETNX 命令:格式: setnx key value将key 的值设为value ,当且仅当key不存在。若给定的key已经存在,则SETNX不做任何动作。SETNX是「SET if Not eXists」(如果不存在,则SET)的简写。不建议使用setnx;有缺陷maven依赖 <dependency> <groupId>org.redisson<...原创 2022-01-06 11:59:56 · 283 阅读 · 0 评论 -
java字符串替换括号(中文和英文括号),通过正则表达式替换,如果直接替换中文可以替换,但是英文替换会报错
public static void main(String[] args) { String str = "(nihao),(henhao),(nichilema?),(chiguole)"; String aa = str.replaceAll("[(]|[)]|[(]|[)]", " "); System.out.println( aa ); }原创 2021-12-20 09:59:45 · 4595 阅读 · 0 评论 -
聚合应用(微服务)下动态创建定时任务ScheduleTask动态读取cron表达式
创建父级parent类创建返回值统一类ResultBodypackage com.example.demo.schedule.parent.controller;import com.alibaba.fastjson.JSON;import java.io.Serializable;import java.util.HashMap;import java.util.Map; @SuppressWarnings("all")public class ResultBody<T&.原创 2021-12-17 11:04:55 · 2534 阅读 · 0 评论 -
mybatis通过<foreach>拼接sql批量更新数据(where条件和更新对应字段都是动态变化处理的)条件和更新字段都是通过java代码传过来的
xml代码如下: <select id="updateQuestionHistoryAnswer"> update et_user_question_history set error_book = <foreach collection="updateAll" item="item" index="index" separator=" " open="case question_id" close="end"> .原创 2021-11-10 15:50:26 · 2674 阅读 · 0 评论 -
后台接收前端传kv格式的对象(对象的值是个数组)后台通过map接收(也可以通过JSONObject对象接收),然后转json再转list实体类
前端传的数据格式如下:{"data":[{"questionId":"3","userId":"1","questionTypeId":"1","isRight":"1","answer":"A","myAnswer":"A"},{"questionId":"2","userId":"1","questionTypeId":"2","isRight":"1","answer":"B","myAnswer":"D"}]}后台接收代码: @PostMapping("/addPr...原创 2021-11-04 11:26:53 · 1862 阅读 · 0 评论 -
java导入带图片的excel表格(工具HSSFWorkbook-HSSFSheet)(支持一条数据(单元格)可以导入多个图片,)
Excel表格导入数据的同时导入图片 @Transactional(rollbackFor = Exception.class) public String selectExcelName(MultipartFile multipartFile, String tableName,String token) {// String proFile = "D:/ruoyi/uploadPath";//文件存放的路径// String filePath = pro原创 2021-04-07 08:57:40 · 10662 阅读 · 0 评论 -
JAVA 静态(static)方法调用service层(静态方法注入service层)-两种解决方案
第一种方案 :import cn.bipartner.goblin.base.pojo.page.LayuiPageInfo;import cn.bipartner.goblin.customer.entity.CrmCustomerManage;import cn.bipartner.goblin.customer.model.params.CrmCustomerManageParam;import cn.bipartner.goblin.customer.service.CrmCustom.原创 2021-04-02 15:28:37 · 12588 阅读 · 4 评论 -
Java中List集合通过对象属性去重,例如通过用户名唯一去重
重复数据的集合 List<UserDTO> userList = new ArrayList<>(); // 去重 List<UserDTO> userList1 = userList.stream().collect(Collectors .collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(UserDTO::getUs.原创 2021-07-21 10:54:25 · 280 阅读 · 0 评论 -
StringBoot 配置单元测试
类上需要添加注解@SpringBootTest@RunWith(SpringRunner.class)或者 SpringBootTest 后面添加 项目启动类@SpringBootTest(classes = {BenanSecurityCheckApplication.class})@RunWith(SpringRunner.class)不添加这个注解会空指针报错...原创 2021-07-13 14:08:32 · 224 阅读 · 0 评论 -
利用redis自增计算数值,并且每一年为单位,新的一年从1开始增加
参数格式 ${year-5-} ;并且 5 是可以变化的,例如 ${year-10-} 10指的是返回编号的位数,传几就返回几位数测试代码String ruleStr = "${year-5-} ";String yearAndCode = redisHelper.yearAndCode(ruleStr);// ${year}-${year-5-code} 5 是可以变化的 最终生成的效果如 2021-00001 public String yearAndCode...原创 2021-06-11 18:14:25 · 587 阅读 · 0 评论 -
springboot中的注解有哪些比较常用
1、@SpringBootApplication这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上,标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以Spring Boot提供了一个统一的注解@SpringBootApplication。2、@EnableAuto原创 2021-06-09 09:51:57 · 1697 阅读 · 1 评论 -
springcloud alibaba基础框架搭建学习笔记整理
java测试时间11111原创 2021-01-29 09:41:44 · 1047 阅读 · 0 评论 -
Java 读取 Word文档的字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、段落等属性
Work库:free spire.doc.jar3.9.0由于这个包比较大,maven依赖容易下载失败,故此提供百度云下载地址,下载地址在最下面可支持读取字体、字号、文字颜色、文字背景、文字是否加粗或倾斜、文字下划线、大小写、边框、上标下标、行距、段落缩进、对齐方式、段落边框、背景等等测试的Word文档内容mavne依赖<dependencies> <!-- java 读取word文件里面的加颜色的字体(特殊字体) -->...原创 2021-06-04 17:07:45 · 3128 阅读 · 7 评论 -
动态创建定时任务ScheduleTask动态读取cron表达式
创建ScheduledControllerpackage com.example.demo.task.controller;import com.example.demo.task.entity.ScheduledTaskBean;import com.example.demo.task.service.ScheduledTaskService;import org.springframework.beans.factory.annotation.Autowired;import org..原创 2021-06-03 09:34:00 · 1553 阅读 · 0 评论 -
java 事物@Transactional失效场景(事物不生效)
事物一般不生效主要有一下几个问题1、数据库引擎不支持事务2、没有被 Spring 管理 例如:没有@Service注解3、方法不是 public 的4、自身调用问题5、数据源没有配置事务管理器6、不支持事务(非实物运行)7、捕获异常8、异常类型错误一般最常见的主要有:自身调用、异常捕获、异常抛出类型错误下面具体研究下具体原因1、数据库引擎不支持事务这里以 MySQL 为例,其 MyISAM 引擎是不支持事务操作的,InnoDB 才是支持事务的引擎,一般要支持事原创 2021-04-06 09:07:50 · 3021 阅读 · 0 评论 -
java计算两个时间段的所有日期(除去周六和周天) 包含最后一天
//查找两个时间段内的所有日期(除去周六、周天) public static List<Date> getDutyDays(Date startDate, Date endDate) { List<Date> list = new ArrayList<>(); Calendar tempStart = Calendar.getInstance(); tempStart.setTime(startDate);...原创 2021-03-31 09:25:44 · 1316 阅读 · 2 评论 -
Spring Boot (二) 校验表单重复提交之谷歌缓存com.google.common.cache.Cache(自定义注解-幂等性)---- 切面作用方法或者类上,
一、Spring Boot 校验表单重复提交操作1、pom.xml中引入Aop所需依赖<!-- ================== 校验表单重复提交所需依赖 ===================== --><!-- AOP依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-...原创 2021-03-31 09:18:49 · 2014 阅读 · 1 评论 -
获取 当前年、季度、月、日、小时的开始和结束时间
private final static SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd"); private final static SimpleDateFormat longHourSdf = new SimpleDateFormat("yyyy-MM-dd HH"); private final static SimpleDateFormat longSdf = new SimpleDateForm...原创 2021-03-29 10:28:57 · 1324 阅读 · 0 评论 -
Spring Boot (一) 校验表单重复提交(自定义注解-幂等性)
一、前言在某些情况下,由于网速慢,用户操作有误(连续点击两下提交按钮),页面卡顿等原因,可能会出现表单数据重复提交造成数据库保存多条重复数据。存在如上问题可以交给前端解决,判断多长时间内不能再次点击保存按钮,当然,如果存在聪明的用户能够绕过前端验证,后端更应该去进行拦截处理,下面小编将基于SpringBoot 2.1.8.RELEASE环境通过AOP切面+自定义校验注解+Redis缓存来解决这一问题。二、Spring Boot 校验表单重复提交操作1、pom.xml中引入所...转载 2021-03-12 15:37:36 · 1191 阅读 · 0 评论 -
[基础篇]-java8之List全面操作指南
List集合是开发中常用的集合之一,本文主要讲解List集合之各种操作与转换。大致包含以下内容:遍历(5种方式)排序(普通排序、单/多属性排序)转Map分组去重(对象属性去重)提取过滤(单条件、多条件)取值(平均值、最大/最小值、求和)前期准备/*** 测试类* @author 程序员小强*/@Datapublic class Student { /** * id */ private int id; /**...转载 2021-03-12 11:57:57 · 1199 阅读 · 0 评论 -
图片进行Base64编码和解码 和 替换word文档数据 并通过浏览器下载
Base64和图片进行转换public static void main(String[] args) { //加密 String strImg = getImageStr("C:\\Users\\admin-xu\\Desktop\\qq截图.jpg"); System.out.println(strImg); System.out.println("-------------------------------------------原创 2021-03-11 15:48:50 · 2064 阅读 · 0 评论 -
学习spring cloud alibaba nacos配置中心的时候,从nacos读取不到配置文件,仍然的读取的本地文件,也不报错,
打印日志如下,只是提示,并没错误信息Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$3f6b7452] is not e原创 2021-03-08 12:48:51 · 2541 阅读 · 0 评论 -
java将数字1转为汉字一和 周 1 转换周一
数字 1 转换汉字 一private static char[] cnArr = new char[]{'一', '二', '三', '四', '五', '六', '七', '八', '九'}; /** * 将数字转换为中文数字, 这里只写到了万 * * @param arabicNum 阿拉伯数字 * @return 中文数字 */ public static String arabicNumToChineseNum(int a.原创 2021-03-08 09:25:57 · 2821 阅读 · 0 评论