自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小菜鸟的博客

一个刚刚走上程序员之路的小菜鸟记录的点点滴滴

  • 博客(19)
  • 收藏
  • 关注

原创 策略模式结合spring使用优化后的第二版本(符合开闭原则的版本)

前一段时间写一篇策略模式结合spring使用,但是最近发现一点点小问题,就是上次的写法他不符合开闭原则。开闭原则呢简单来说就是:一个软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化的(具体的大家可以自行百度)我们原先的代码呢如下:public class ActionHandlerFactory { private static Map<Byte, ActionHandler> ROUT_MAP; @Autowired private TeacherAct

2021-06-24 23:00:54 133

原创 guava提升你的开发效率

现在的java开发中已经有了很多的方便的工具来辅助我们开发,这里就简单讲一下guava常用的一些方法Optional这个在java中也有用于判断对象是否为空的 // 创建空的Optional对象 Optional.empty(); // 使用非null值创建Optional对象如果传入了一个null 会抛出空指针异常 Optional.of("aaaaa"); // 使用任意值创建Optional对象 Optional

2021-06-15 18:12:04 1507 1

原创 lamda流编程

lamda表达式的流编程在项目中基本上也是很常用的了,这次对常用的一些表达式进行一些记录加深自己的印象,让自己的代码看起来更加的高端大气上档次 哈哈哈哈哈filterlist.stream() // filter .filter(sku -> SkuCategoryEnum.BOOKS .equals(sku.getSk

2021-06-11 16:30:24 159 2

原创 mongodb常用的聚合管道操作

# 常用的一些mg的聚合管道操作```db.mg_live_gather_data.aggregate([{$project:{_id:0,answerStatus:1,clientName:{$multiply:["$type",2]} //可以输出自定义列的名称}}])```可以输出想要的列和自定义列的名称,将某个列重新起别名的是要如下代码```db.mg_live_gather_data.aggregate([{$project:{_id:0,...

2021-06-11 11:03:32 484

原创 lamda常用的函数式接口

记录一些常用的函数式接口在java中lamda已经定义好了一些函数式接口,为了避免忘记这里对一些常用的接口做一些记录加深一下印象使用的时候在你的方法中就可以把这个函数式接口当做参数传入。典型的使用例子://list转化成另一个list public static <F, T> List<T> convertToList(List<F> fs, Function<F, T> function) { if (CollectionUtils.is

2021-06-11 11:02:20 1114 1

原创 白话 spring session 源码

# 项目中一直使用spring session但是以前都是只有在使用没有深入了解其原理,这次碰巧项目不是很忙仔细研究了一下他的原理## spring session 的使用使用很简单网上一大堆教程这里面就简单说一下引入jar包```<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis...

2021-06-03 20:41:45 384

原创 mg常用的语句 增删改查

记录一下平时使用的mg查询语句,省的忘了## 插入语句```db.mg_crm_user.insertOne({});db.mg_crm_user.insertMany([{},{}],{ordered:true}) // ordered 就是插入的文档需要顺序db.mg_crm_user.save();db.mg_crm_user.insert();//可以插入多个 也可以插入一个db.mg_crm_user.insertOne({_id:{userId:1,type:0}}); ..

2021-05-08 16:32:07 220

原创 spring mybatis多数据源开启事务,数据源不能切换的解决办法及源码分析(看完之后你绝不后悔)

上一章我们已经讲解了spring的读写分离,但是如果加入事务的时候切换数据源就失败了,搞了半天居然换来这种结果。。。。这边文章就会带着大家深入了解问什么加入事务之后切换数据源会失败及解决办法。下面的文章会将一些源码,这些鬼东西读起来很烦,但是我们已经走到这步了只能硬着头皮硬钢!!!```@Transactional public void all(){ TestService currentclass= (TestService ) AopContext.currentP...

2021-04-28 11:29:46 3537 5

原创 spring mybatis 下的多数据源

# spring mybtis 下的多数据源最近在项目中遇到了需要读写分离的需求优化,在此正好记录一下这次实现的过程及遇到的问题和自己的一些扩展(机智如我)。实现的方式就是一些公共的方案:1 继承**AbstractRoutingDataSource** 重写 **determineCurrentLookupKey** 方法2 使用 自定义注解 aop 的方式切换数据源使用上述方法基本上可以完成多数据源的读写分离了,那还等什么?![](https://files.mdnice.com/us

2021-04-28 11:29:21 327

原创 策略模式结合spring的使用

# 策略模式结合spring使用我们在项目中经常会遇到if else 特别多的情况,比如前段穿了一个type,不同type 数据处理的流程逻辑也不相同,正常情况我们会怎么做呢?就会像下面一样:```if("aa".equals(type)){ //一顿处理}else if("bb".equals(type)){ //又是一顿处理}else if(){ }else if(){ }else if(){ }```当然了,自己写的呢我们自己肯定可以看懂了...

2021-04-09 14:48:57 246

原创 Spring的点点滴滴之aop

我个人对aop的理解就是在不改变原有代码的基础上嵌入一些公共的服务,aop的本质就是动态代理 在使用aop之前先要导入两个架包: 之后就是配置文件的一些配置,如下: 加入这些: xmlns:aop="http://www.springframework.org/schema/aop"http://www.springframework.org/schema/aop http

2016-11-29 19:43:21 279

原创 Spring的点点滴滴之动态代理

动态代理的一些代码的举例public class ProxyInvocationHandler implements InvocationHandler{ private Object target; public void setTarget(Object target) { this.target = target; } public Object

2016-11-29 14:36:34 156

原创 Spring点点滴滴之静态代理

最近学习了静态代理,首先举个例子,就是租房子的例子。在这里有房东,中介,和我(租房子的)。这里房东将房子委托给中介,中介带这我去看房子,房子满意房东将房子租给我,我把中介费给中介。这就是一个静态代理的过程。中介代理了租房子的过程,而且在这个过程中加入了自己的一些业务(带人看房子,收中介费)。 简单的用例图就是这样的 下面就是一些简单的代码:public interface userService

2016-11-28 20:25:35 201

原创 Spring的点点滴滴之依赖注入

最近学习了依赖注入把自己所学的记录下来,首先就是有构造方法的依赖注入,要用到,这种标签的用法一般如下<constructor-arg name="" value="></constructor-arg> <constructor-arg index="" value="></constructor-arg> <constructor-arg name="" ref="">

2016-11-28 15:25:18 185

转载 对象类型的判断

Object param = params.get(i); if (param instanceof Integer) { int value = ((Integer) param).intValue(); } else if (param instanceof String) { String s = (String) param; } else if (para

2016-11-15 10:20:00 258

原创 map的遍历

最近刚刚用到了map的遍历,由于有一点忘了所以在使用完之后在此记下来以便以后使用。 代码如下Map map=new HashMap<Integer,String>(); map.put(1, "nihasdasao"); map.put(2, "nihsdasdao"); map.put(3, "nisdadshao"); map.p

2016-11-15 10:08:33 236

原创 SpringMvc的点点滴滴之springMvc的配置

今天将最近学的springMvc整理一下,首先就是搭建一个springMvc,第一步创建一个项目,将架包复制到lib下面。第二步就是在web.xml下配置前段控制器DispatcherServlet<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servle

2016-11-08 11:12:59 277

原创 springMvc的点点滴滴

这个主要是讲解一下自己遇到的@InitBinder的问题,这个@InitBinder实际上就是在springmvc中,当表单向后台传递日期类型的数据时,由于springmvc不能自动在后台转化Date类型的参数(int可以自动转化成String等等),所以用到了@InitBinder。实际上客户端向服务器传递参数都是通过request.getparameter来传递的,传递到后台实际上是字符串,这

2016-11-07 20:14:32 170

原创 springMvc中的@InitBinder

这个主要是讲解一下自己遇到的@InitBinder的问题,这个@InitBinder实际上就是在springmvc中,当表单向后台传递日期类型的数据时,由于springmvc不能自动在后台转化Date类型的参数(int可以自动转化成String等等),所以用到了@InitBinder。实际上客户端向服务器传递参数都是通过request.getparameter来传递的,传递到后台实际上是字符串,这时

2016-11-07 20:11:55 634

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除