若鱼1919
码龄14年
  • 983,905
    被访问
  • 159
    原创
  • 2,164
    排名
  • 1,288
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2008-09-25
博客简介:

若鱼的专栏

博客描述:
JAVA开发
查看详细资料
  • 4
    领奖
    总分 795 当月 28
个人成就
  • 获得231次点赞
  • 内容获得180次评论
  • 获得636次收藏
创作历程
  • 4篇
    2022年
  • 4篇
    2021年
  • 36篇
    2020年
  • 29篇
    2019年
  • 14篇
    2018年
  • 19篇
    2017年
  • 26篇
    2016年
  • 26篇
    2015年
  • 44篇
    2014年
  • 15篇
    2013年
  • 5篇
    2012年
  • 4篇
    2011年
  • 1篇
    2010年
成就勋章
TA的专栏
  • protobuf
    4篇
  • spring
    33篇
  • java
    154篇
  • android
    59篇
  • 其他
    1篇
  • 视频教程
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 服务器
    linux
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

spring-data-jpa使用与原理解析

spring-data-jpa使用入门spring-data-jpa的使用非常简单:1.添加依赖2.添加EntityManager相关配置3.定义实体Bean,映射数据库表和字段4.编写业务Repository看个最简单的demo1.pom.xml<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.data</gr
原创
发布博客 2022.05.08 ·
327 阅读 ·
0 点赞 ·
0 评论

无用的知识点又增加了-关于Spring Bean的生命周期

问:请描述下Spring Bean的生命周期答:简单的说就3步:1、创建BeanDefination阶段2、创建Bean阶段3、销毁Bean阶段创建BeanDefination阶段1.BeanFactory通过xml、注解配置类创建BeanDefination2.通过BeanFactoryPostProcessor.postProcessBeanFactory()对BeanFination进行修改创建Bean阶段1.反射调用构造函数,创建初始化的Bean对象2.注入@Autowired
原创
发布博客 2022.04.30 ·
626 阅读 ·
0 点赞 ·
0 评论

无用的知识点又增加了-关于FactoryBean

问:如果在Spring中定义了一个FactoryBean,那么容器中会存在几个Bean?一个还是两个?写一段代码测试下:public class FactoryBeanTest { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(); ctx.registerBean(Us
原创
发布博客 2022.04.30 ·
86 阅读 ·
0 点赞 ·
0 评论

那些年,我们写过的低级BUG,警钟长鸣

又一个低级的生产BUGif(newDto.getStoreName().equals(oldDto.getStoreName()) && newDto.getStoreCode().equals(oldDto.getStoreCode()) && newDto.getGoodsName().equals(oldDto.getGoodsName()) && newDto.getGoodsSpec().equals(oldDto.getGood
原创
发布博客 2022.02.23 ·
466 阅读 ·
0 点赞 ·
0 评论

JDBC执行批量UPDATE的几个坑

关于allowMultiQueries上代码:@Test public void testUpdateBatch2Jdbc()throws Exception{ Connection conn = ds.getConnection(); PreparedStatement pstmt = conn.prepareStatement( "update users set gender = 0 where id = 1;" +
原创
发布博客 2021.12.10 ·
806 阅读 ·
0 点赞 ·
0 评论

Mybatis一级缓存与二级缓存

一级缓存作用范围是SqlSession,当创建SqlSession的时候,会创建Executor,父类BaseExecutor中有一个localCache,查询结果就是缓存在这个localCache中。如果SqlSession执行了增删改就会刷新缓存二级缓存作用范围是namespace,当框架启动的时候会去解析每一个mapper.xml,一个mapper.xml有一个与之对应的namespace,一个xml中会有多个MappedStatement,每个查询的MappedStatement都会关联一个
原创
发布博客 2021.09.10 ·
116 阅读 ·
1 点赞 ·
0 评论

3个线程依次交替打印ABC

方法1.wait-notifypublic static void main(String[] args) throws Exception{ Object lock1 = new Object(); Object lock2 = new Object(); Object lock3 = new Object(); Thread t1 = new Thread(()->{ while(true){ try{
原创
发布博客 2021.07.14 ·
84 阅读 ·
0 点赞 ·
0 评论

mysql的bigint(20)里面的20代表什么含义?

参考:Types in MySQL: BigInt(20) vs Int(20)See http://dev.mysql.com/doc/refman/8.0/en/numeric-types.htmlINT is a four-byte signed integer.BIGINT is an eight-byte signed integer.They each accept no more and no fewer values than can be stored in their resp
原创
发布博客 2021.03.01 ·
559 阅读 ·
0 点赞 ·
0 评论

又见Druid:sql injection violation, multi-statement not allow

之前写过一篇关于这个问题的文章:https://blog.csdn.net/goldenfish1919/article/details/50600053最近在一个项目中又遇到这个问题了,道理在上篇文章中已经说得很清楚了,说一下这回遇到的问题。首先,项目是用jndi来连接的数据库,因此数据库的配置不是配置在应用程序里面的,比如${tomcat_home}/conf/context.xml:<Context> <WatchedResource>WEB-INF/web.xm
原创
发布博客 2020.12.01 ·
251 阅读 ·
0 点赞 ·
0 评论

那些年,我们写过的低级BUG,警钟长鸣

看下这段代码有哪些问题:public static MultiPriceInfo getMultiPriceInfo(List<MultiPriceInfo> multiPriceInfos, String code) { if(CollectionUtils.isEmpty(multiPriceInfos)){ return null; } for(MultiPriceInfo priceInfo : multiPric
原创
发布博客 2020.10.29 ·
253 阅读 ·
0 点赞 ·
0 评论

Apollo配置中心客户端源码解析

配置中心在现在的分布式系统可以说是一个必不可少的核心组件了,国内使用最广泛的配置中心应该是携程开发的Apollo。Apollo的思想还是挺简单的,简单地说,服务端利用Eureka做高可用,配置信息存到数据库,客户端调用服务端的接口,拉取最新的配置,如果有变化,就更新客户端的配置。服务端提供了可视化的图形界面去修改配置,保存到数据库。我们今天先来看下客户端部分是如何来实现的。客户端的主要功能就是调用服务端接口,获取最新的配置,然后更新配置。由于apollo-client的代码还是比较复杂了,因此在它的基础上
原创
发布博客 2020.10.15 ·
516 阅读 ·
1 点赞 ·
0 评论

spring-cloud-starter-openfeign源码解析

上文中我们讲了spring-cloud-starter-openfeign的使用,比起原生的openfeign的api好用了很多,本文我们就来看下它的源码。看下spring-cloud-openfeign-core:这里面对openfeign做了自动配置,其中FeignRibbonClientAutoConfiguration和FeignLoadBalancerAutoConfiguration显然是做负载均衡的,FeignHalAutoConfiguration是用来处理application/ha
原创
发布博客 2020.09.22 ·
456 阅读 ·
1 点赞 ·
0 评论

如何获取当前线程中所有的ThreadLocal?

public class ThreadLocalUtil { public static Map<ThreadLocal, Object> getThreadLocalMap(){ Map<ThreadLocal, Object> threadLocals = new HashMap<>(); Thread thread = Thread.currentThread(); try{ Fiel
原创
发布博客 2020.09.16 ·
3956 阅读 ·
2 点赞 ·
0 评论

spring-cloud-starter-openfeign使用详解

首先还是把demo跑起来:添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>添加注解@SpringBootApplication@EnableFeignClients//添加这个注解public c
原创
发布博客 2020.09.15 ·
11992 阅读 ·
8 点赞 ·
1 评论

搞了一天存储过程,现在又说历史数据不用处理了。。。

十几年不写oracle的存储过程了,花了一整天,一行一行的调试出来的,说不用就不用了,记一下语法吧,万一以后还能用得上:--先创建个类型CREATE OR REPLACE TYPE ty_str_split IS TABLE OF VARCHAR2 (4000);-- 创建个字符串拆分函数 CREATE OR REPLACE FUNCTION fn_split (p_str IN VARCHAR2, p_delimiter IN VARCHAR2) RETURN ty_str_sp
原创
发布博客 2020.09.11 ·
118 阅读 ·
0 点赞 ·
0 评论

OpenFeign源码解析

feign的核心功能就是通过接口去访问网络资源,猜一下里面也是用动态代理来实现的,就跟Mybatis用接口去访问数据库一样,今天我们就来看下源码的处理,核心就一个包:<dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-core</artifactId></dependency>先来看个demo://feign接口public in
原创
发布博客 2020.09.08 ·
428 阅读 ·
1 点赞 ·
0 评论

OpenFeign使用详解

openfeign是一个java的http客户端,用来简化http调用,先看一个最简单的demo:这是服务端接口:@RestControllerpublic class DemoController { @GetMapping("/hello") public String hello(){ return "hello"; }}openfeign是如何来调用这个接口的呢?public interface Demo { @RequestLine("
原创
发布博客 2020.08.31 ·
5415 阅读 ·
6 点赞 ·
0 评论

spring-cloud-starter-netflix-hystrix使用详解

前面文中我们学习了hystrix的原生使用(hystrix入门-原生API使用)和注解使用(hystrix进阶-注解hystrix-javanica使用),本文来看下hystrix在spring-boot中的使用。首先还是先看个最简单的demo第一步:添加依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netf
原创
发布博客 2020.08.24 ·
9718 阅读 ·
2 点赞 ·
0 评论

SpringBoot 2.2和2.3异常处理的一个小变化

先看个有意思的现象:@RestControllerpublic class DemoController { @GetMapping("/hello") public String hello(){ throw new RuntimeException("服务端异常,请稍后再试!"); }}在springboot2.2.0的时候,浏览器访问http://localhost:8080/hello,输出结果如下:换成springboot2.3.0的时候,输出
原创
发布博客 2020.08.18 ·
1434 阅读 ·
1 点赞 ·
1 评论

hystrix进阶-注解hystrix-javanica使用

前一篇我们讲了hystrix原生api的使用,用起来还是比较复杂的,如果想让一个方法支持fallback还得去继承HystrixCommand,跟业务完全耦合到一起,对业务的侵入性太大了,显然不利于hystrix的使用,因此hystrix-javanica出现了,可以让应用以注解的方式更方便的来使用hystrix。先看个demo第一步:引入依赖<dependencies> <dependency> <groupId>com.netflix.hystrix&l
原创
发布博客 2020.08.16 ·
367 阅读 ·
1 点赞 ·
2 评论
加载更多