短小精悍
mumuzsl
程序猿。
展开
-
Spring Boot MongoDB @Indexed 未创建索引
在Spring Boot项目中使用 MongoDB ,Order类中的orderId添加@Indexed后在MongoDB中未创建索引,原因是配置中的auto-index-creation未设置为true。@Document(collection = "order")public class Order { @Id private String id; @Indexed(unique = true) private String orderId; priva原创 2022-04-21 21:05:16 · 4088 阅读 · 0 评论 -
通过Objects.equals避免NPE
参考:《新版Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?Integer a = null;boolean b1 = a == 1;// 报NPE, 原因:a要拆箱,即调用a.intValue()与1比较,这时a为null报NPEboolean b2 = a == (Object) 1;// false, 把1装箱,即从int变成Integer,a==(Object)1 ==> null==(Integer)1,不会报NPEboolean b3 = (Object) a =原创 2021-11-17 11:04:15 · 633 阅读 · 0 评论 -
使用restTemplate.getForEntity接口调用返回慢
restTemplate.getForEntity慢极大可能是序列化的方面的问题。采用FastJSON直接将restTemplate.getForEntity转换为JsonObject进行接口调用的返回,速度显著提示“====================”紧接着在“uri: http://localhost:8080/platform/api/order/full/17001”的后面被打印出来,说明restTemplate.getForEntity是不慢的用FastJSON中的JSON.to原创 2021-05-02 23:58:11 · 5759 阅读 · 0 评论 -
Spring Cache(Redis)学习
使用Spring Cache。Cache配置类,@EnableConfigurationProperties(RedisProperties.class)@EnableCaching@Configurationpublic class CacheConfiguration { @Bean RedisCacheConfiguration redisCacheConfiguration(CacheProperties cacheProperties) { RedisC原创 2021-04-23 21:57:49 · 69 阅读 · 0 评论 -
外键关系小记
一对多时使用RESTRICT一对一时使用CASCADE特例:订单表和订单详情表是“一对一”关系多个订单详情对应一个订单创建订单时,向数据库写入一个订单,和多个订单详情。后面再创建订单时,订单详情表中已有的数据不会和这个新创建的订单有关系,新的订单详情数据有自己唯一对应的订单,不会和已有的订单表中的数据有关系。...原创 2021-04-17 12:43:47 · 286 阅读 · 0 评论 -
内存地址小思
64位最大支持16EB内存,32位最大支持4GB内存。假设电脑有16GB内存,对每个Byte编号,从0开始编号,会产生2^34个编号,每个编号表示成16进制,至少需要9位16进制数例子: 0010 0010 0010 0010 1010 1100 0000 0101 1000 = 2 2 2 2 a c 0 58 黄色部分34位,每4位二进制可转换成一位16进制,所以需要在最前面补零。...原创 2021-03-24 12:16:41 · 43 阅读 · 0 评论 -
float32小记
float32存储的值与科学计数法相似,但它的底数是2,型如M*(2^E)。(1000000000000000000000001)2=16777217(1000000000000000000000001 )_2=16777217(1000000000000000000000001)2=16777217(1000000000000000000000000)2=16777216(1000000000000000000000000 )_2=16777216(100000000000000000000原创 2021-03-23 11:19:46 · 591 阅读 · 0 评论 -
maven国内镜像小记
<!-- 阿里云 --> <mirror> <id>aliyunmaven</id> <mirrorOf>*</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/public</url> </mirror> ...原创 2021-03-18 15:31:17 · 71 阅读 · 0 评论 -
认证 (authentication) 和授权 (authorization)小记
原文地址以前一直分不清 authentication 和 authorization,其实很简单,举个例子来说:你要登机,你需要出示你的身份证和机票,身份证是为了证明你张三确实是你张三,这就是 authentication;而机票是为了证明你张三确实买了票可以上飞机,这就是 authorization。在 computer science 领域再举个例子:你要登陆论坛,输入用户名张三,密码1234,密码正确,证明你张三确实是张三,这就是 authentication;再一check用户张三是个版主,原创 2021-03-16 19:48:16 · 283 阅读 · 0 评论 -
UserDetailsService小记
@Resource private UserDetailsService userDetailsService;当你采用上面的方式引入UserDetailsService时,你需要像下面一样在@Service中加上名称。因为UserDetailsServiceAutoConfiguration中会先产生一个InMemoryUserDetailsManager,它也是UserDetailsService的实现类,Spring选择了InMemoryUserDetailsManager,这时U...原创 2021-03-15 12:49:52 · 379 阅读 · 0 评论 -
ConditionalOnBean顺序
@ConditionalOnBean(name = "tom") @Bean public User user1() { return new User("user1"); } @Bean("tom") public Pet pet() { return new Pet("pet1"); }上面的代码名为user1的Bean不会被创建 @Bean("tom") public Pet pet() {...原创 2021-02-15 22:41:42 · 861 阅读 · 2 评论 -
构造Bean的方法上的参数
@Bean public User user1() { return new User("user1"); } @Bean public User user2() { return new User("user2"); } @Bean public Pet fun1(User user) { Pet pet = new Pet("pet1"); pet.setMaster(use...原创 2021-02-15 19:42:41 · 449 阅读 · 0 评论 -
单例模式的线程安全
// 懒汉式(线程安全,同步方法)class Singleton { private static Singleton instance; private Singleton() {} //提供一个静态的公有方法,加入同步处理的代码,解决线程安全问题 //即懒汉式 public static synchronized Singleton getInstance() { if(instance == null) { instance = new Singleton(); }原创 2021-01-28 21:23:32 · 109 阅读 · 1 评论 -
十进制数的二进制合并
假设有x,y两个十进制数,我想把x和y的二进制拼接为一个n位的二进制,x的二进制在右边,y的二进占左边m位。方法:x << m | y例子:x=5 ⟹ 101y=6 ⟹ 110n=10m=5(x<<m)∣y ⟹ 10100000∣110 ⟹ 10100110x=5 \implies 101\\y=6 \implies 110\\n=10\\m=5\\(x<<m) \mid y \implies 10100000 \mid 110 \i原创 2021-01-27 23:08:58 · 468 阅读 · 0 评论 -
Java 杂记
public interface Inter1 { Obj1 fun1(); } public Inter1 build1() { return new Inter1() { @Override public Obj1 fun1() { return null; } }; }上面的代码可以写成下面的lambda形式,上面的代码是接口原创 2021-01-13 12:36:00 · 72 阅读 · 0 评论 -
关于日历的思考
公元2020年1月1日是不是表示从公元元年开始已经过去了2020个年?答案是否定的。公历的年其实相当于序号,所以2020年表示第2020个年。如此看来,2020年1月1日表示从公元元年开始已经过去了2019个年,当到了2021年1月1日之后,才是真正过去了2020个年。...原创 2021-01-11 15:10:54 · 94 阅读 · 0 评论 -
序列化实现深拷贝
Main类public class Main { public static void main(String[] args) { Person pA = new Person("zhao", 18, new Person("peng", 30, null)); // 将对象序列化后,通过反序列化获得新的对象,完成深拷贝 try (ByteArrayOutputStream bos = new ByteArrayOutputStream();原创 2020-11-01 18:05:21 · 611 阅读 · 0 评论 -
vi/vim-快捷键积累
Ctrl-f 向前滚动一页Ctrl-b 向后滚动一页Ctrl-u 向前滚动半页Ctrl-d 向后滚动半页原创 2020-10-27 21:48:37 · 72 阅读 · 0 评论 -
SQL联结
原创 2020-09-09 16:29:29 · 64 阅读 · 0 评论 -
常见架构
Aliyun Java Initializrwebapiserviceservice层和web层都依赖于api层。service是使用api作为标准,web层是使用api的功能。所以可以先进行api的编写,面向接口编程。原创 2020-08-02 22:03:09 · 69 阅读 · 0 评论 -
GitHub图床
图片已经上传到了某个GitHub中的某个仓库。举例:已经上传的图片的仓库路径https://github.com/用户名/仓库名/tree/分支/a.png注意:如果直接访问上面的网址,返回是一个网页。需要转换成下面的网址才能访问到图片资源。你在查看某个文件时,地址中会包含一个tree,去掉它。https://raw.githubusercontent.com/用户名/仓库名/分支/a.png虽然GitHub可以作为图床,但国内访问时也存在图片加载失败的情况。包括访问GitHub网站本身时,原创 2020-08-01 16:12:38 · 252 阅读 · 0 评论 -
非0即1
从0得到1,从1得到0,有几种方法1、非运算(有些编程语言不支持直接对数字非运算)a = !b!0 = 1!1 = 02、异或运算a = 1 ^ b1 ^ 0 = 11 ^ 1 = 03、1被减法a = 1 - b1 - 0 = 11 - 1 = 0原创 2020-07-18 22:14:17 · 1498 阅读 · 0 评论 -
二进制最大值
16二进制数的最大值是2^16-1 = 0b1111111111111111 # 16位二进制2的16次方的二进制是17位。2^16 = 0b10000000000000000 # 17位二进制2的16次方能表示的范围是[65535, 0] 或 [32767, -32768]。-32768怎么表示?-32768 = 0b1000000000000000 # 第一位用作符号位0 = 0b0000000000000000 # 1表示负数,0表示正数...原创 2020-07-18 22:40:50 · 10986 阅读 · 0 评论 -
牢记运算符优先级的重要性(举例)
今天在读《Java技术手册》时遇到这么一个例子假设 i = 0a[i++] = a[i++] + 1;我最开始认为上面的代码等价于a[1] = a[0] + 1;通过代码试验发现我错了翻书可知道上面式子中的运算符优先级(由高到低)[ ]+++=所以上面的式子等价于a[0] = a[1] + 1;...原创 2020-07-20 19:15:16 · 248 阅读 · 0 评论 -
i++和++i傻傻分不清
i++,++i都会使i加1假设i = 0a = i++ # a = 0, i = 1a = ++i # a = 1, i = 1简单概括:i++返回递增前的值,++i返回递增后的值i++a = i # a = 1, i = 1原创 2020-07-20 23:00:27 · 96 阅读 · 0 评论 -
代码简便写法参考(Java)
删除文件!dir.exists() || dir.delete()原创 2020-07-22 11:06:10 · 165 阅读 · 0 评论 -
代码中KB、MB的表示
1 << 10 可表示 1KB1 << 20 可表示 1MB......原创 2020-07-23 12:03:28 · 374 阅读 · 0 评论