原创 SpringBoot利用@Validated和@Valid進行校驗參數
什麼是Validator Spring Validation驗證框架對參數的驗證機制提供了@Validated(Spring's JSR-303規範,是標準JSR-303的一個變種),javax提供了@Valid(標準JSR-303規範)
原创 dubbo @Reference 註解注入原理
問題: 被@Reference 註解的 bean,是在什麼時機注入的? 被@Reference 註解的 bean,通常是一個接口,怎麼可以被實例化呢? 答案是: @Reference 的注入時機和 @Autowired 註解是類似的,但不
原创 駝峯命名法(CamelCase)和下劃線命名法(UnderScoreCase)之間的轉換
因爲數據庫表的字段名通常是用下劃線命名法,但前端通常傳的是駝峯命名法的字符串,我要將其轉化爲下劃線命名法的字符串去數據庫表中進行查詢。 例: select * from use where user_name=.....這時就要把user
原创 RocketMQ消息消費源碼分析(一消費者的啓動、消息拉取)
消息消費方式 Consumer分爲兩種,PullConsumer和PushConsumer。從名字就可以看出一種是拉取的方式,一種是主動Push的方式。具體實現如下: PullConsumer,由用戶主動調用pull方法來獲取消息,沒有則
原创 RocketMQ消息消費源碼分析(二消息的消費)
首先回到DefaultMQPushConsumerImpl start方法 public synchronized void start() throws MQClientException { switch(this
原创 java 實現根據對象某屬性對List中的對象元素去重
可以利用TreeSet與java8提供的stream filter對List進行去重 代碼: public class TestRemoveDup { /** * TreeSet的本質是一個"有序的,並且沒有
原创 MySQL 添加索引、唯一約束以及修改字段
添加索引 1.添加PRIMARY KEY(主鍵索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER
原创 java8 List轉Map,並進行分組過濾求和等操作
定義實體類: public class Person { private String name; private Integer age; public Person() { } publi
原创 關於JDK lambda表達式與匿名內部類的等價實現卻出現了截然不同的結果原因分析
發現了一個很奇怪的現象,先上代碼: public interface A { int f(); default A cf(A other){ return new A(){ @Ov
原创 Java利用反射進行對象深拷貝與類型轉換
Java利用反射進行對象賦值與類型轉換 首先利用反射創建目標類對象,獲取當前對象以及目標類所有的成員,然後對這些屬性雙層循環遍歷比較變量名,變量名稱相等則進行賦值。 獲取成員屬性時注意點:class.getDeclaredFields()
原创 BigDecimal格式化與工具類
由於NumberFormat類的format()方法可以使用BigDecimal對象作爲其參數,可以利用BigDecimal對超出16位有效數字的貨幣值,百分值,以及一般數值進行格式化控制。 以利用BigDecimal對貨幣和百分比格式化
原创 mysql的聚簇索引與非聚簇索引
在mysql數據庫中,myisam引擎和innodb引擎使用的索引類型不同,myisam對應的是非聚簇索引,而innodb對應的是聚簇索引。 聚簇索引 所謂聚簇索引,就是指主索引文件和數據文件爲同一份文件,聚簇索引主要用在Innodb存儲
原创 centos與Windows下安裝Redis
安裝: yum install redis 使用配置文件啓動 redis,配置文件在/etc/redis.conf redis-server /etc/redis.conf & 連接客戶端 redis-cli 服務器和客戶端在 /usr/
原创 springboot mybatis druid配置多數據源
1.項目代碼結構: 2,導入基本依賴:記得需要導入mysql驅動mysql-connector-java <dependencies> <dependency> <groupId>org.springframework.bo
原创 用BigDecimal解決doule類型相減時可能存在的誤差
double類型的兩個數相減可能存在誤差,比如System.out.println(2099 - 1999.9);的結果爲99.09999999999991 可以用BigDecimal解決: public class TestDoubl