Java高级
木木的小林子
这个作者很懒,什么都没留下…
展开
-
spring事务以及事务嵌套
ACID事务是区分文件存储系统与Nosql数据库重要特性之一,其存在的意义是为了保证即使在并发情况下也能正确的执行crud操作,怎样才算是正确的呢?这时提出了事务需要保证的四个特性ACID:A:原子性(atomicity)事务中各项操作,要么全做要么全不做,任何一项操作的失败都都会导致整个事务的失败;C:一致性(consistency)事务结束后系统状态是一致的;I:隔离...原创 2020-05-09 19:34:18 · 411 阅读 · 0 评论 -
SpringBoot使用yml文件配置日志
今天本来只是想要学习一些SSM框架的东西,自己测试一下,带着怎么快速怎么来的于是就用SpringBoot呗,结果刚写完代码刚点击启动就莫名其妙开始报错:javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication at com.sun.jmx.inte...原创 2019-12-08 20:08:07 · 1068 阅读 · 0 评论 -
利用策略模式和工厂模式优化代码中过多的if-else
在公司经常会遇到一些需要做一连串相似的业务逻辑判断需求,比如使用不同支付方式实现商品打折、商店根据客户的vip等级给予客户不同的优惠政策之类的业务场景。假设现在我们接到一个需求,根据客户的VIP等级,给与不同的优惠政策:// VIP1 消费1000 ~ 2000,9折优惠, 消费2000~5000,8折优惠,消费5000~10000,7折优惠, 消费10000~,6折优惠 stati...原创 2019-12-07 23:17:09 · 394 阅读 · 0 评论 -
设计模式——深入浅出策略模式
假如接到一个需求,需要设计两种鸭子:红头鸭和绿头鸭;他们只是表现的不一样,都会游泳和gaga叫,学过面向对象的同学都知道我们可以设计一个父类,让这个父类Duck具有游泳和gaga叫的行为,再加上一个display的抽象行为让子类重写。这个时候而两种鸭子都继承Duck,这样便会减少代码量,也就减少了工作量。这种设计方式如下:public abstract class Duck { publ...原创 2019-11-24 15:43:27 · 127 阅读 · 0 评论 -
Java线程池结合ThreadLocal的用法实例
今天由于老大让我向数据库中添加百万条数据用来做测试,考虑到单线程插入数据可能要花很久的时间,于是想到了用线程池来进行插入操作,但是里面有个一个唯一性约束字段,然后在这个过程中遇到了好几个问题:一开始使用线程池的时候由于唯一性约束字段的存在,需要将一个公有变量变成私有变量(每个线程在执行过程中变量需要不被外界修改),但是线程池中的线程是通过实现Runnable接口方式创建的,那么类中的私有变量其...原创 2019-11-07 00:46:26 · 882 阅读 · 0 评论 -
spring组件学习
本文主要记录学习到的spring组件以及spring组件设置。给spring容器中注册组件通过使用注解方式向spring容器中添加组件是十分简单的,大体有如下方式:在config类中通过添加@Bean来添加注解通过扫描添加组件使用@Import添加一个外部组件使用@ImportSelector添加一个组件使用ImportBeanDefinitionRegistrar添加一个组件使...原创 2019-11-05 22:34:23 · 207 阅读 · 0 评论 -
spring中使用自定义注解
使用spring时,aop可以大幅度减少我们的工作量,这里主要介绍一些spring中aop如何切注解。自定义注解:@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface MyAnnotation { String value();}编写切面类,切点在自定义注解上...原创 2019-11-05 22:33:12 · 259 阅读 · 0 评论 -
spring5源码编译(亲测)
这一阵子在读spring源码,但是网上的文章,构建spring源码大都有问题,导致我构建源码的时候出现了很多问题,所以我自己重新构建了一下。纠结了一会儿要不要写这篇文章,还是决定写下来,当作笔记用,同时给广大网友提供一个编译spring源码的方法。本机环境win10 + jdk1.8.0_151 + IntelliJ IDEA 2019.1.3spring使用的是5.0版本(下面介绍的方法在...原创 2019-11-05 22:32:18 · 1493 阅读 · 0 评论 -
RestFul风格API
RestFul是什么?REST是REpresentational State Transfer的缩写(表述性状态转移),REST是一种体系结构。简单的说,REST就是将资源的状态以合适客户端或服务端的形式从服务端转移到客户端(或者反过来)。在REST中,资源通过 URL 进行识别和定位,然后通过不同的 action(既HTTP方法,GET等) 来定义REST应该完成的功能。在实际的web开...原创 2019-11-05 22:22:35 · 201 阅读 · 0 评论 -
MyBatis中的一对一,一对多,多对多关联映射查询
MyBatis中的一对一,一对多,多对多关联映射查询一对多(嵌套结果)将结果嵌套,在collection标签中加入对应的行表列映射:<resultMap id="BaseResultMap" type="com.luolin.springssm.model.Student"> <!-- id 表示主键, column 表示数据库中表的column名称,jdbcTy...原创 2019-11-05 22:11:33 · 996 阅读 · 0 评论 -
设计模式之代理模式(静态代理和动态代理)
代理模式java中代理模式分为静态代理和动态代理,其中动态代理就是通过反射完成的。代理模式的主要思想就是有些类不好直接做某些操作,于是就通过代理类来完成。静态代理是每一个类如果想要使用代理模式,必须有一个代理类;动态代理则是有了明显的进步:所有的类使用一个代理类。静态代理实现代码如下:/** * 公共实现的接口,(主题) */interface ClothFactory{ ...原创 2019-11-03 23:01:31 · 304 阅读 · 0 评论